Anfrage :
Wie kann ich das Timeout-Problem bei der Garnerstellung überwinden oder einen effizienten Weg finden, die Anwendung so zu erstellen, dass meine Codeänderungen korrekt angewendet werden? Idealerweise würde ich gar nicht auf garn build verzichten.
Ich habe eine benutzerdefinierte Docker-Datei erstellt, um einige zusätzliche Änderungen an der Codebasis zu integrieren, wie z. B. Modifizieren die Willkommensnachricht. Während des Build-Prozesses tritt jedoch ein Problem auf:
- Wenn ich den Befehl „garn build in die Docker-Datei einbinde, Der Build-Prozess dauert über 40 Minuten und bricht schließlich während des @calcom/web#build-Schritts ab.
- Ohne den Befehl „garn build“ wird das Docker-Image erstellt schnell und ich kann sehen, dass die Codeänderungen im Docker-Container vorhanden sind. Die Änderungen werden jedoch nicht in der laufenden Anwendung widergespiegelt.
Ich glaube, dass der Schritt „Garn Build notwendig ist, um die Anwendung mit meinen Codeänderungen zu kompilieren, aber er läuft ab und wird nicht erfolgreich abgeschlossen.
Frage:
Gibt es eine alternative Möglichkeit, diese Codeänderungen anzuwenden, ohne in das Garn zu geraten? Build-Timeout-Problem? Wie kann ich die Anwendung mit meinen Änderungen effizient in einer selbst gehosteten Produktionsumgebung erstellen?
Jede Hilfe oder Anregung wäre sehr dankbar.
< strong>Hier ist meine Docker-Datei:
Code: Select all
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
Code: Select all
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
- Ohne den Garnaufbau Schritt, der Der Build wird sofort abgeschlossen, aber die Änderungen sind in der laufenden Anwendung nicht wirksam.
- Das Einbeziehen von „garn build“ führt dazu, dass der Build zu lange dauert und schließlich eine Zeitüberschreitung auftritt.
- Docker-Image (mit Befehlen) – hub.docker.com
- Codebase – github.com
Cal.com-Dokumente (selbst gehostete Anweisungen) - cal.com/docs