diff --git a/templates/compose/cap.yaml b/templates/compose/cap.yaml index 5d6aa1a9f..1b4f6e28a 100644 --- a/templates/compose/cap.yaml +++ b/templates/compose/cap.yaml @@ -8,60 +8,68 @@ services: cap-web: container_name: cap-web - image: ghcr.io/capsoftware/cap-web:latest - platform: linux/amd64 # <--- since the image is not available for arm64 + image: 'ghcr.io/capsoftware/cap-web:latest' restart: unless-stopped environment: - - SERVICE_FQDN_CAPWEB_5679 - - DATABASE_URL=mysql://root:${SERVICE_PASSWORD_MYSQL}@ps-mysql:3306/planetscale?ssl={"rejectUnauthorized":false} - - WEB_URL=$SERVICE_URL_CAPWEB - - NEXTAUTH_URL=$SERVICE_URL_CAPWEB - - DATABASE_ENCRYPTION_KEY=${SERVICE_BASE64_DATABASEENCRYPTIONKEY} - - NEXTAUTH_SECRET=${SERVICE_BASE64_NEXTAUTHSECRET} - - CAP_AWS_ACCESS_KEY=${SERVICE_USER_MINIO} - - CAP_AWS_SECRET_KEY=${SERVICE_PASSWORD_MINIO} - - CAP_AWS_BUCKET=capso - - CAP_AWS_REGION=us-east-1 - - CAP_AWS_ENDPOINT=http://minio:3902 - ports: - - "5679:3000" # inside the container, the port is 3000, but we want to expose it to the host on port 5679 - - ps-mysql: - container_name: cap-primary-db - image: mysql:8.0 + - SERVICE_FQDN_CAP_3000 + - 'DATABASE_URL=mysql://$SERVICE_USER_MYSQL:$SERVICE_PASSWORD_MYSQL@cap-db:3306/${MYSQL_DATABASE:-planetscale}' + - 'WEB_URL=${WEB_URL:-http://localhost:3000}' + - 'NEXTAUTH_URL=${WEB_URL:-http://localhost:3000}' + - 'DATABASE_ENCRYPTION_KEY=${SERVICE_PASSWORD_64_DATABASEENCRYPTIONKEY}' + - 'NEXTAUTH_SECRET=${SERVICE_PASSWORD_64_NEXTAUTHSECRET}' + - 'CAP_AWS_ACCESS_KEY=${SERVICE_USER_MINIO}' + - 'CAP_AWS_SECRET_KEY=${SERVICE_PASSWORD_MINIO}' + - 'CAP_AWS_BUCKET=${CAP_AWS_BUCKET:-capso}' + - 'CAP_AWS_REGION=${CAP_AWS_REGION:-us-east-1}' + - 'CAP_AWS_ENDPOINT=${CAP_AWS_ENDPOINT:-http://minio:3902}' + depends_on: + cap-db: + condition: service_healthy + cap-s3: + condition: service_healthy + + cap-db: + container_name: cap-db + image: 'mysql:8.0' restart: unless-stopped environment: - - MYSQL_DATABASE=planetscale - - MYSQL_ROOT_HOST=% - - MYSQL_ROOT_PASSWORD=${SERVICE_PASSWORD_MYSQL} + - 'MYSQL_USER=${SERVICE_USER_MYSQL}' + - 'MYSQL_PASSWORD=${SERVICE_PASSWORD_MYSQL}' + - 'MYSQL_DATABASE=${MYSQL_DATABASE:-planetscale}' + - 'MYSQL_ROOT_PASSWORD=${SERVICE_PASSWORD_MYSQLROOT}' + - 'MYSQL_ALLOW_EMPTY_PASSWORD=${MYSQL_ALLOW_EMPTY_PASSWORD:-yes}' command: - [ - "--max_connections=1000", - "--default-authentication-plugin=mysql_native_password", - ] - ports: - - "3306:3306" + - '--max_connections=1000' + - '--default-authentication-plugin=mysql_native_password' + healthcheck: + test: + - CMD + - mysqladmin + - ping + - '-h' + - 127.0.0.1 + interval: 10s + timeout: 10s + retries: 5 volumes: - - ps-mysql:/var/lib/mysql - - # Local S3 Strorage - minio: - container_name: cap-minio-storage - image: "bitnami/minio:latest" + - 'cap_db:/var/lib/mysql' + cap-s3: + container_name: cap-s3 + image: 'bitnami/minio:latest' restart: unless-stopped - ports: - - "3902:3902" - - "3903:3903" environment: - MINIO_API_PORT_NUMBER=3902 - MINIO_CONSOLE_PORT_NUMBER=3903 - - MINIO_ROOT_USER=${SERVICE_USER_MINIO} - - MINIO_ROOT_PASSWORD=${SERVICE_PASSWORD_MINIO} + - MINIO_ROOT_USER=$SERVICE_USER_MINIO + - MINIO_ROOT_PASSWORD=$SERVICE_PASSWORD_MINIO + healthcheck: + test: + - CMD + - curl + - '-f' + - 'http://localhost:3902/minio/health/live' + interval: 10s + timeout: 10s + retries: 5 volumes: - - minio-data:/bitnami/minio/data - - minio-certs:/certs -volumes: - ps-mysql: - # REMOVE THESE IF YOU ARE NOT USING MINIO VIA THIS DOCKER COMPOSE FILE - minio-data: - minio-certs: \ No newline at end of file + - 'cap_s3:/bitnami/minio/data' \ No newline at end of file