ee00f0d52c
* feat: Add official Docker support * Adding scarf data support * Comment out pushing the image for now * Getting env vars ported * Renamed the job to Release instead of Remote Release * Move the Dockerfile and docker-compose files to monorepo root * Remove Slack notifications for failures for now * Show database container status * Setting env directly for testing * Removing env var * Adding container logs * Change the volume * fixing file paths * Double-quotes wrecking things * Fixing /calcom paths * Update permission for scripts * Fixed the Slack notification * Updated Slack notification emojis * Checking the workflow_dispatch input for checkout * Commenting out the tag checkout for now since our new Docker files are not in main * Added .dockerignore * Remove the scarf data export * Removed extra empty line * refactor: Create reusable Docker build action for AMD64 and ARM support - Extract common Docker build logic into reusable composite action - Create separate workflows for AMD64 and ARM builds that run in parallel - Both workflows use the same reusable action with platform-specific parameters - ARM builds use ubuntu-24.04-arm runner and add -arm suffix to tags - AMD64 builds use buildjet-4vcpu-ubuntu-2204 runner - Remove old monolithic release-docker.yaml workflow Co-Authored-By: keith@cal.com <keithwillcode@gmail.com> * Revert "refactor: Create reusable Docker build action for AMD64 and ARM support" This reverts commit 66d2c1741e094e8d39b928b109edaf67b6a1cc8e. * refactor: Add parallel AMD64 and ARM Docker builds using reusable action - Create reusable composite action in .github/actions/docker-build-and-test - Extract common Docker build, test, and push logic into the action - Update release-docker.yaml to have two parallel jobs: - release-amd64: Builds for linux/amd64 on buildjet-4vcpu-ubuntu-2204 - release-arm: Builds for arm64 on ubuntu-24.04-arm with -arm suffix - Both jobs use the same reusable action with platform-specific parameters - Maintains existing functionality while enabling parallel builds Co-Authored-By: keith@cal.com <keithwillcode@gmail.com> * Update the ARM action to run on buildjet 4vCPU ARM * Move the Dockerfile to apps/web * Revert "Move the Dockerfile to apps/web" This reverts commit fd91ebe5b4285cfa3416e6f869f567329ece8b23. * Revert the arm machine back off build jet * Use node 20 * Set push to true * Remove Dockerfile.render * Removed commented Docker lines * Fixed read me * Updated README for Docker support --------- Co-authored-by: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
139 lines
4.5 KiB
YAML
139 lines
4.5 KiB
YAML
# Use postgres/example user/password credentials
|
|
|
|
volumes:
|
|
database-data:
|
|
redis-data:
|
|
|
|
networks:
|
|
stack:
|
|
name: stack
|
|
external: false
|
|
|
|
services:
|
|
database:
|
|
container_name: database
|
|
image: postgres
|
|
restart: always
|
|
volumes:
|
|
- database-data:/var/lib/postgresql
|
|
environment:
|
|
- POSTGRES_USER=unicorn_user
|
|
- POSTGRES_PASSWORD=magical_password
|
|
- POSTGRES_DB=calendso
|
|
networks:
|
|
- stack
|
|
|
|
redis:
|
|
container_name: redis
|
|
image: redis:latest
|
|
restart: always
|
|
volumes:
|
|
- redis-data:/data
|
|
networks:
|
|
- stack
|
|
ports:
|
|
- "${REDIS_PORT:-6379}:6379"
|
|
|
|
calcom:
|
|
image: calcom.docker.scarf.sh/calcom/cal.com
|
|
build:
|
|
context: .
|
|
dockerfile: Dockerfile
|
|
args:
|
|
NEXT_PUBLIC_WEBAPP_URL: ${NEXT_PUBLIC_WEBAPP_URL}
|
|
NEXT_PUBLIC_API_V2_URL: ${NEXT_PUBLIC_API_V2_URL}
|
|
NEXT_PUBLIC_LICENSE_CONSENT: ${NEXT_PUBLIC_LICENSE_CONSENT}
|
|
NEXT_PUBLIC_WEBSITE_TERMS_URL: ${NEXT_PUBLIC_WEBSITE_TERMS_URL}
|
|
NEXT_PUBLIC_WEBSITE_PRIVACY_POLICY_URL: ${NEXT_PUBLIC_WEBSITE_PRIVACY_POLICY_URL}
|
|
NEXT_PUBLIC_SINGLE_ORG_SLUG: ${NEXT_PUBLIC_SINGLE_ORG_SLUG}
|
|
ORGANIZATIONS_ENABLED: ${ORGANIZATIONS_ENABLED}
|
|
CALCOM_TELEMETRY_DISABLED: ${CALCOM_TELEMETRY_DISABLED}
|
|
NEXTAUTH_SECRET: ${NEXTAUTH_SECRET}
|
|
CALENDSO_ENCRYPTION_KEY: ${CALENDSO_ENCRYPTION_KEY}
|
|
DATABASE_URL: ${DATABASE_URL}
|
|
DATABASE_DIRECT_URL: ${DATABASE_URL}
|
|
CSP_POLICY: ${CSP_POLICY}
|
|
restart: always
|
|
networks:
|
|
- stack
|
|
ports:
|
|
- 3000:3000
|
|
env_file: .env
|
|
environment:
|
|
- DATABASE_URL=postgresql://${POSTGRES_USER}:${POSTGRES_PASSWORD}@${DATABASE_HOST}/${POSTGRES_DB}
|
|
- DATABASE_DIRECT_URL=${DATABASE_URL}
|
|
depends_on:
|
|
- database
|
|
|
|
calcom-api:
|
|
container_name: calcom-api
|
|
build:
|
|
context: ./calcom
|
|
dockerfile: apps/api/v2/Dockerfile
|
|
args:
|
|
DATABASE_URL: ${DATABASE_URL}
|
|
DATABASE_DIRECT_URL: ${DATABASE_URL}
|
|
restart: always
|
|
networks:
|
|
- stack
|
|
ports:
|
|
- "${API_PORT:-80}:${API_PORT:-80}"
|
|
env_file: .env
|
|
environment:
|
|
- NODE_ENV=${NODE_ENV}
|
|
- API_PORT=${API_PORT:-80}
|
|
- API_URL=${API_URL}
|
|
- DATABASE_URL=postgresql://${POSTGRES_USER}:${POSTGRES_PASSWORD}@${DATABASE_HOST}/${POSTGRES_DB}
|
|
- DATABASE_READ_URL=postgresql://${POSTGRES_USER}:${POSTGRES_PASSWORD}@${DATABASE_HOST}/${POSTGRES_DB}
|
|
- DATABASE_WRITE_URL=postgresql://${POSTGRES_USER}:${POSTGRES_PASSWORD}@${DATABASE_HOST}/${POSTGRES_DB}
|
|
- DATABASE_DIRECT_URL=${DATABASE_URL}
|
|
- NEXTAUTH_SECRET=${NEXTAUTH_SECRET}
|
|
- JWT_SECRET=${JWT_SECRET}
|
|
- REDIS_URL=${REDIS_URL}
|
|
- LOG_LEVEL=${LOG_LEVEL}
|
|
- API_KEY_PREFIX=${API_KEY_PREFIX}
|
|
- WEB_APP_URL=${WEB_APP_URL}
|
|
- IS_E2E=${IS_E2E:-false}
|
|
- REWRITE_API_V2_PREFIX=${REWRITE_API_V2_PREFIX:-true}
|
|
- CALCOM_LICENSE_KEY=${CALCOM_LICENSE_KEY}
|
|
- NEXT_PUBLIC_VAPID_PUBLIC_KEY=${NEXT_PUBLIC_VAPID_PUBLIC_KEY}
|
|
- VAPID_PRIVATE_KEY=${VAPID_PRIVATE_KEY}
|
|
- STRIPE_API_KEY=${STRIPE_API_KEY}
|
|
- STRIPE_WEBHOOK_SECRET=${STRIPE_WEBHOOK_SECRET}
|
|
- STRIPE_PRICE_ID_STARTER=${STRIPE_PRICE_ID_STARTER}
|
|
- STRIPE_PRICE_ID_STARTER_OVERAGE=${STRIPE_PRICE_ID_STARTER_OVERAGE}
|
|
- STRIPE_PRICE_ID_ESSENTIALS=${STRIPE_PRICE_ID_ESSENTIALS}
|
|
- STRIPE_PRICE_ID_ESSENTIALS_OVERAGE=${STRIPE_PRICE_ID_ESSENTIALS_OVERAGE}
|
|
- STRIPE_PRICE_ID_ENTERPRISE=${STRIPE_PRICE_ID_ENTERPRISE}
|
|
- STRIPE_PRICE_ID_ENTERPRISE_OVERAGE=${STRIPE_PRICE_ID_ENTERPRISE_OVERAGE}
|
|
- STRIPE_TEAM_MONTHLY_PRICE_ID=${STRIPE_TEAM_MONTHLY_PRICE_ID}
|
|
- IS_TEAM_BILLING_ENABLED=${IS_TEAM_BILLING_ENABLED:-false}
|
|
- AXIOM_DATASET=${AXIOM_DATASET}
|
|
- AXIOM_TOKEN=${AXIOM_TOKEN}
|
|
- LOGGER_BRIDGE_LOG_LEVEL=${LOGGER_BRIDGE_LOG_LEVEL}
|
|
- DOCS_URL=${DOCS_URL}
|
|
- GET_LICENSE_KEY_URL=${GET_LICENSE_KEY_URL}
|
|
depends_on:
|
|
- database
|
|
- redis
|
|
|
|
# Optional use of Prisma Studio. In production, comment out or remove the section below to prevent unwanted access to your database.
|
|
studio:
|
|
image: calcom.docker.scarf.sh/calcom/cal.com
|
|
restart: always
|
|
networks:
|
|
- stack
|
|
ports:
|
|
- 5555:5555
|
|
env_file: .env
|
|
environment:
|
|
- DATABASE_URL=postgresql://${POSTGRES_USER}:${POSTGRES_PASSWORD}@${DATABASE_HOST}/${POSTGRES_DB}
|
|
- DATABASE_DIRECT_URL=${DATABASE_URL}
|
|
depends_on:
|
|
- database
|
|
command:
|
|
- npx
|
|
- prisma
|
|
- studio
|
|
# END SECTION: Optional use of Prisma Studio.
|