Docker – So wenden Sie benutzerdefinierte Änderungen an der Codebasis anJavaScript

Javascript-Forum
Guest
 Docker – So wenden Sie benutzerdefinierte Änderungen an der Codebasis an

Post by Guest »

Ich verwende eine selbstgehostete Open-Source-Version von cal.com, bereitgestellt mit Docker und Docker-Compose auf einem Server.
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.
Problem:
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
Und hier ist mein docker-compose.yml:

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
Zusätzliche Informationen:
  • 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.
Referenzen:
  • Docker-Image (mit Befehlen) – hub.docker.com
  • Codebase – github.com
    Cal.com-Dokumente (selbst gehostete Anweisungen) - cal.com/docs

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post