Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Bug]: Magic environment variables don't generate passwords #4646

Open
tobidope opened this issue Dec 22, 2024 · 2 comments
Open

[Bug]: Magic environment variables don't generate passwords #4646

tobidope opened this issue Dec 22, 2024 · 2 comments
Labels
🐛 Bug Reported issues that need to be reproduced by the team. 🔍 Triage Issues that need assessment and prioritization.

Comments

@tobidope
Copy link

Error Message and Logs

Image

Steps to Reproduce

  1. Add docker-compose.yaml with magic environment variables
services:
  miniflux:
    image: "miniflux/miniflux:latest"
    expose:
      - "8080"
    depends_on:
      db:
        condition: service_healthy
    environment:
      - "DATABASE_URL=postgres://miniflux:${SERVICE_PASSWORD_DB}@db/miniflux?sslmode=disable"
      - ADMIN_USERNAME=admin
      - ADMIN_PASSWORD=${SERVICE_PASSWORD_MINIFLUX}
  db:
    image: "postgres:17-alpine"
    environment:
      - POSTGRES_USER=miniflux
      - POSTGRES_PASSWORD=${SERVICE_PASSWORD_DB}
      - POSTGRES_DB=miniflux
    volumes:
      - "miniflux-db:/var/lib/postgresql/data"
volumes:
  miniflux-db:
  1. Expect environment variables to be filled with a random password like documented in https://coolify.io/docs/knowledge-base/docker/compose#coolifys-magic-environment-variables
  2. Variables are empty, the database doesn't start

Example Repository URL

No response

Coolify Version

v4.0.0-beta.379

Are you using Coolify Cloud?

No (self-hosted)

Operating System and Version (self-hosted)

Ubuntu 24.04.1 LTS

Additional Information

I'm using the image provided by Hetzner in a cax21 server (arm64)

@tobidope tobidope added 🐛 Bug Reported issues that need to be reproduced by the team. 🔍 Triage Issues that need assessment and prioritization. labels Dec 22, 2024
@cjasmith
Copy link

cjasmith commented Jan 7, 2025

Looks like this is fixed in #4127.

@Grustamli
Copy link

I am experiencing the same issue. This is my Docker Compose file (Modified Retool Compose file to run on Coolify)

services:
  api:
    build:
      context: ./
      dockerfile: Dockerfile
    environment:
      - DEPLOYMENT_TEMPLATE_TYPE=docker-compose
      - SERVICE_TYPE=MAIN_BACKEND,DB_CONNECTOR,DB_SSH_CONNECTOR
      - DBCONNECTOR_POSTGRES_POOL_MAX_SIZE=100
      - DBCONNECTOR_QUERY_TIMEOUT_MS=120000
      - WORKFLOW_BACKEND_HOST=http://workflows-backend:3000
      - CODE_EXECUTOR_INGRESS_DOMAIN=http://code-executor:3004
      - NODE_ENV=production
      - JWT_SECRET=${JWT_SECRET}
      - POSTGRES_DB=${POSTGRES_DB}
      - POSTGRES_USER=${SERVICE_USER_POSTGRES}
      - POSTGRES_HOST=postgres
      - POSTGRES_PORT=5432
      - POSTGRES_PASSWORD=${SERVICE_PASSWORD_POSTGRES}
      - RETOOLDB_POSTGRES_DB=${RETOOL_POSTGRES_DB}
      - RETOOLDB_POSTGRES_USER=${SERVICE_USER_RETOOLDB}
      - RETOOLDB_POSTGRES_HOST=retooldb-postgres
      - RETOOLDB_POSTGRES_PORT=5432
      - RETOOLDB_POSTGRES_PASSWORD=${SERVICE_PASSWORD_RETOOLDB}
      - DOMAINS=${HOSTNAME} -> http://api:3000
      - ENCRYPTION_KEY=${ENCRYPTION_KEY}
      - LICENSE_KEY=${RETOOL_LICENCE_KEY}
      - SERVICE_FQDN_API_3000

    networks:
      - frontend-network
      - backend-network
      - code-executor-network
    depends_on:
      - postgres
      - retooldb-postgres
      - jobs-runner
      - workflows-worker
      - code-executor
    command: bash -c "./docker_scripts/wait-for-it.sh postgres:5432; ./docker_scripts/start_api.sh"
    ports:
      - "3000:3000"
    restart: on-failure
    volumes:
      - ./keys:/root/.ssh
      - ./keys:/retool_backend/keys
      - ssh:/retool_backend/autogen_ssh_keys
      - ./retool:/usr/local/retool-git-repo
      - ./retool:/usr/local/retool-repo

  jobs-runner:
    build:
      context: ./
      dockerfile: Dockerfile
    environment:
      DEPLOYMENT_TEMPLATE_TYPE: docker-compose
      SERVICE_TYPE: JOBS_RUNNER
    networks:
      - backend-network
    depends_on:
      - postgres
    command: bash -c "chmod -R +x ./docker_scripts; sync; ./docker_scripts/wait-for-it.sh postgres:5432; ./docker_scripts/start_api.sh"
    volumes:
      - ./keys:/root/.ssh

  workflows-worker:
    build:
      context: ./
      dockerfile: Dockerfile
    command: bash -c "./docker_scripts/wait-for-it.sh postgres:5432; ./docker_scripts/start_api.sh"
    environment:
      DEPLOYMENT_TEMPLATE_TYPE: docker-compose
      SERVICE_TYPE: WORKFLOW_TEMPORAL_WORKER
      NODE_OPTIONS: --max_old_space_size=1024
      DISABLE_DATABASE_MIGRATIONS: true
      WORKFLOW_BACKEND_HOST: http://workflows-backend:3000
      CODE_EXECUTOR_INGRESS_DOMAIN: http://code-executor:3004
    networks:
      - backend-network
      - code-executor-network
    restart: on-failure

  workflows-backend:
    build:
      context: ./
      dockerfile: Dockerfile
    environment:
      DEPLOYMENT_TEMPLATE_TYPE: docker-compose
      SERVICE_TYPE: WORKFLOW_BACKEND,DB_CONNECTOR,DB_SSH_CONNECTOR
      WORKFLOW_BACKEND_HOST: http://workflows-backend:3000
      CODE_EXECUTOR_INGRESS_DOMAIN: http://code-executor:3004
      DBCONNECTOR_POSTGRES_POOL_MAX_SIZE: 100
      DBCONNECTOR_QUERY_TIMEOUT_MS: 120000
    networks:
      - backend-network
      - code-executor-network
    depends_on:
      - postgres
      - retooldb-postgres
      - workflows-worker
      - code-executor
    command: bash -c "./docker_scripts/wait-for-it.sh postgres:5432; ./docker_scripts/start_api.sh"
    restart: on-failure
    volumes:
      - ./keys:/root/.ssh
      - ./keys:/retool_backend/keys
      - ssh:/retool_backend/autogen_ssh_keys
      - ./retool:/usr/local/retool-git-repo
      - ./retool:/usr/local/retool-repo

  code-executor:
    build:
      context: ./
      dockerfile: CodeExecutor.Dockerfile
    command: bash -c "./start.sh"
    environment:
      DEPLOYMENT_TEMPLATE_TYPE: docker-compose
      NODE_OPTIONS: --max_old_space_size=1024
    networks:
      - code-executor-network
    privileged: true
    restart: on-failure

  postgres:
    image: "postgres:11.13"
    environment:
      POSTGRES_DB: ${POSTGRES_DB}
      POSTGRES_USER: ${SERVICE_USER_POSTGRES}
      POSTGRES_PASSWORD: ${SERVICE_PASSWORD_POSTGRES}
    networks:
      - backend-network
    volumes:
      - data:/var/lib/postgresql/data

  retooldb-postgres:
    image: "postgres:14.3"
    environment:
      POSTGRES_DB: ${RETOOL_POSTGRES_DB}
      POSTGRES_USER: ${SERVICE_USER_RETOOLDB}
      POSTGRES_PASSWORD: ${SERVICE_PASSWORD_RETOOLDB}
    networks:
      - backend-network
    volumes:
      - retooldb-data:/var/lib/postgresql/data

  https-portal:
    image: tryretool/https-portal:latest
    ports:
      - "8081:80"
      - "8443:443"
    links:
      - api
    restart: always
    environment:
      STAGE: "local"
      CLIENT_MAX_BODY_SIZE: 40M
      KEEPALIVE_TIMEOUT: 605
      PROXY_CONNECT_TIMEOUT: 600
      PROXY_SEND_TIMEOUT: 600
      PROXY_READ_TIMEOUT: 600
      SERVICE_FQDN_HTTPS-PORTAL_8081:
    networks:
      - frontend-network

networks:
  frontend-network:
  backend-network:
  code-executor-network:

volumes:
  ssh:
  data:
  retooldb-data:

The SERVICE_USER_POSTGRES, SERVICE_PASSWORD_POSTGRES variables are still empty in the GUI. Container terminals also show the variables as empty.

Image

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
🐛 Bug Reported issues that need to be reproduced by the team. 🔍 Triage Issues that need assessment and prioritization.
Projects
None yet
Development

No branches or pull requests

3 participants