I'm writing as docker-compose
file to up MySQL instance and want to use few variable from env file: here are the files actually look like:
docker-compose.yml
version: '3.3' services: db: image: mysql restart: always env_file: - ./imran.env environment: MYSQL_ROOT_PASSWORD: ${PASS} ports: - ${PORT1}: ${PORT2}
imran.env
PASS=imran123 PORT1=3306 PORT2=3306
Instead of working correct i'm getting following errors:
WARNING: The PASS variable is not set. Defaulting to a blank string. WARNING: The PORT2 variable is not set. Defaulting to a blank string. ERROR: The Compose file './docker-compose.yml' is invalid because: services.db.ports contains unsupported option: '${PORT1}
Please Help
The .env file, is only used during a pre-processing step when working with docker-compose.yml files. Dollar-notation variables like $HI are substituted for values contained in an “.env” named file in the same directory.
Several environment variables are available for you to configure the Docker Compose command-line behavior.
Using –env, -e When we launch our Docker container, we can pass environment variables as key-value pairs directly into the command line using the parameter –env (or its short form -e). As can be seen, the Docker container correctly interprets the variable VARIABLE1.
Compose V1 is marked as deprecated, and we'll begin patching only high-severity vulnerabilities or fixing critical bugs until the next milestone. Developers can continue to alias docker-compose to use docker compose.
You have some issues in your docker-compose.yaml
file:
A:
A space
symbol between ports values. It should be without a space:
ports: - ${PORT1}:${PORT2}
B:
You need to use .env file in folder where docker-compose.yaml
is in order to declaring default environment variables for both docker-compose.yaml
file and docker container. env_file
section is used to put values into container only.
So, you should do the following:
1.
Re-name file with ENV variables to .env
:
mv imran.env .env
2.
Use the following docker-compose.yaml
after:
version: '3.3' services: db: image: mysql restart: always environment: MYSQL_ROOT_PASSWORD: ${PASS} ports: - ${PORT1}:${PORT2}
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With