Docker — как применить пользовательские модификации к базе кодаJavascript

Форум по Javascript
Ответить
Anonymous
 Docker — как применить пользовательские модификации к базе кода

Сообщение Anonymous »

Я использую автономную версию Cal.com с открытым исходным кодом, развернутую с помощью Docker и docker-compose на сервере.
Запрос :
Как преодолеть проблему тайм-аута сборки пряжи или найти эффективный способ создания приложения, чтобы мои изменения кода применялись правильно? В идеале мне бы вообще не хотелось использовать сборку Yarn.
Я создал собственный Dockerfile, чтобы включить некоторые дополнительные изменения в кодовую базу, например изменение приветственное сообщение. Однако во время процесса сборки я столкнулся с проблемой:
  • Когда я включаю команду Yarn build в файл Dockerfile, процесс сборки занимает более 40 минут и в конечном итоге истекает по времени на этапе @calcom/web#build.
  • Без команды Yarn build образ Docker строится быстро, и я вижу, что изменения кода существуют внутри контейнера Docker. Однако изменения не отражаются в работающем приложении.
Проблема:
Я считаю, что этап сборки Yarn необходим для компиляции приложения с моими модификациями кода, но время ожидания истекло и он не завершается успешно.
Вопрос: >
Есть ли альтернативный способ применить эти изменения кода, не сталкиваясь с проблема с тайм-аутом сборки пряжи? Как я могу эффективно создать приложение с моими изменениями в автономной производственной среде?
Будем очень признательны за любую помощь или предложения.
< strong>Вот мой Dockerfile:

Код: Выделить всё

ARG SOFTWARE_VERSION_TAG=latest
FROM calcom/cal.com:${SOFTWARE_VERSION_TAG}

RUN apt-get update && \
apt-get install -y python3 python3-pip && \
rm -rf /var/lib/apt/lists/*

RUN pip3 install --no-cache-dir --break-system-packages cyrtranslit

COPY ./patch.sh /calcom/
COPY ./convert.py /calcom/
COPY ./icons /calcom/app/web/public

# Applying custom changes to the code, like a different welcome message
RUN chmod +x /calcom/patch.sh
RUN chmod +x /calcom/convert.py

RUN /calcom/patch.sh

WORKDIR /calcom

ARG NEXT_PUBLIC_LICENSE_CONSENT
ARG CALCOM_TELEMETRY_DISABLED
ARG DATABASE_URL
ARG NEXTAUTH_SECRET=secret
ARG CALENDSO_ENCRYPTION_KEY=secret
ARG MAX_OLD_SPACE_SIZE=4096
ARG NEXT_PUBLIC_API_V2_URL

ENV NEXT_PUBLIC_WEBAPP_URL=http://NEXT_PUBLIC_WEBAPP_URL_PLACEHOLDER \
NEXT_PUBLIC_API_V2_URL=$NEXT_PUBLIC_API_V2_URL \
NEXT_PUBLIC_LICENSE_CONSENT=$NEXT_PUBLIC_LICENSE_CONSENT \
CALCOM_TELEMETRY_DISABLED=$CALCOM_TELEMETRY_DISABLED \
DATABASE_URL=$DATABASE_URL \
DATABASE_DIRECT_URL=$DATABASE_URL \
NEXTAUTH_SECRET=${NEXTAUTH_SECRET} \
CALENDSO_ENCRYPTION_KEY=${CALENDSO_ENCRYPTION_KEY} \
NODE_OPTIONS=--max-old-space-size=${MAX_OLD_SPACE_SIZE} \
BUILD_STANDALONE=true

RUN yarn config set httpTimeout 120000000

# This step times out after 40 minutes during the @calcom/web#build
RUN yarn build
А вот мой docker-compose.yml:

Код: Выделить всё

services:
database:
container_name: database
image: elestio/postgres:16
restart: always
volumes:
- ./pgdata:/var/lib/postgresql/data/
env_file: .env
ports:
- 172.17.0.1:5432:5432

calcom:
build:
context: .
dockerfile: Dockerfile
args:
SOFTWARE_VERSION_TAG: ${SOFTWARE_VERSION_TAG}
restart: always
ports:
- 172.17.0.1:6424:3000
env_file: .env
environment:
- DATABASE_URL=postgresql://${POSTGRES_USER}:${POSTGRES_PASSWORD}@${DATABASE_HOST}/${POSTGRES_DB}
- DATABASE_DIRECT_URL=postgresql://${POSTGRES_USER}:${POSTGRES_PASSWORD}@${DATABASE_HOST}/${POSTGRES_DB}
depends_on:
- database

pgadmin4:
image: elestio/pgadmin:latest
restart: always
environment:
PGADMIN_DEFAULT_EMAIL: ${ADMIN_EMAIL}
PGADMIN_DEFAULT_PASSWORD: ${ADMIN_PASSWORD}
PGADMIN_LISTEN_PORT: 8080
ports:
- "172.17.0.1:8080:8080"
volumes:
- ./servers.json:/pgadmin4/servers.json
Дополнительная информация:
  • Без этапа сборки пряжи сборка завершается немедленно, но изменения не действуют в работающем приложении.
  • Включение сборки пряжи приводит к тому, что сборка занимает слишком много времени и в конечном итоге истекает по времени.
Ссылки:
  • Образ Docker (с командами) —hub.docker.com
  • База кода — github.com
    Документы Cal.com (автоматически размещенные инструкции) – Cal.com/docs


Подробнее здесь: https://stackoverflow.com/questions/793 ... e-codebase
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Javascript»