Запрос :
Как преодолеть проблему тайм-аута сборки пряжи или найти эффективный способ создания приложения, чтобы мои изменения кода применялись правильно? В идеале мне бы вообще не хотелось использовать сборку 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
Код: Выделить всё
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
Мобильная версия