docker-compose.yml 内で環境変数を、docker-compose の起動時に渡された値で使用できるようにしたいと考えています。これがその例です。
今日は、独自のスクリプトをラップした基本的な docker run コマンドを使用してこれを実行しています。このような bash ラッパーを使用せずに、compose でそれを実現する方法はありますか?
proxy:
hostname: $hostname
volumes:
- /mnt/data/logs/$hostname:/logs
- /mnt/data/$hostname:/data
docker-compose は、ファイル内のデフォルトの環境変数をネイティブにサポートしているようです。
.env という名前のファイルで変数を宣言するだけで、docker-compose.yml で使用できるようになります。
たとえば、次の内容を含む .env ファイルの場合:
MY_SECRET_KEY=SOME_SECRET
IMAGE_NAME=docker_image
docker-compose.yml 内の変数にアクセスしたり、変数をコンテナーに転送したりできます。
my-service:
image: ${IMAGE_NAME}
environment:
MY_SECRET_KEY: ${MY_SECRET_KEY}