79798656

Date: 2025-10-24 10:22:46
Score: 1
Natty:
Report link

Ok there may be a small confusion about how env_file: and --env-file work so let's try to explain this in few steps

services:
  db:
    image: mysql:8.0
    restart: always
    env_file:
      - .env.local
    ports:
      - 5432:5432

This will in fact mean, that you have following compose file

services:
  db:
    image: mysql:8.0
    restart: always
    environment:
        - DATABASE_USERNAME=dummy
        - DATABASE_PASSWORD=secret
        - DATABASE_NAME=demo
        - MYSQL_DATABASE=demo
        - MYSQL_USER=dummy
        - MYSQL_PASSWORD=secret
        - MYSQL_ROOT_PASSWORD=supersecret
    ports:
      - 5432:5432

Which you may reiterate to

services:
  db:
    image: mysql:8.0
    restart: always
    environment:
        - DATABASE_USERNAME=${USER_NAME}
        - DATABASE_PASSWORD=${SECRET}
        - DATABASE_NAME=${DB_NAME}
        - MYSQL_DATABASE=${DB_NAME}
        - MYSQL_USER=${USER_NAME}
        - MYSQL_PASSWORD=${SECRET}
        - MYSQL_ROOT_PASSWORD=${ROOT_PASS}
    ports:
      - 5432:5432

Prepare my_envs file like:

USER_NAME = dummy
SECRET = secret
DB_NAME = demo
ROOT_PASS = supersecret

And the use the podman-compose --env-file my_envs -f compose.yaml config which will "substitute" your variables inside the compose file.

podman-compose version: 1.0.6
['podman', '--version', '']
using podman version: 4.3.1
services:
  db:
    environment:
      DATABASE_NAME: demo
      DATABASE_PASSWORD: secret
      DATABASE_USERNAME: dummy
      MYSQL_DATABASE: demo
      MYSQL_PASSWORD: secret
      MYSQL_ROOT_PASSWORD: supersecret
      MYSQL_USER: dummy
    image: mysql:8.0
    ports:
    - 5432:5432
    restart: always

Maybe this is what you are looking for?

Reasons:
  • Long answer (-1):
  • Has code block (-0.5):
  • Ends in question mark (2):
  • Low reputation (0.5):
Posted by: Zdenek R