概要
docker-compose.ymlを使ってコンテナを起動するとフォルダ名が初期値としてプロジェクト名となってしまい、フォルダ名を変えた場合に、プロジェクト名が勝手に変わってしまう。
そのため、どこで起動しても同じプロジェクト名にしたいとパラメータを調べた結果をメモしておく。
docker-composeの場合
下記サイトを参考に、環境変数をセットする必要があるようです。
ターミナル
$ export COMPOSE_PROJECT_NAME=web && \
docker-compose up -d
※「COMPOSE_PROJECT_NAME」をセットすることで、プロジェクト名が指定できるようです。
もっと調べてみたら、「-p」オプションで指定できるようです。
ターミナル
$ docker-compose -p web up -d
試してみる
docker-compose.yml
version: '2'
services:
httpd:
image: httpd:2.4
container_name: 'httpd'
php:
image: php:5.6-fpm
container_name: 'php'
volumes:
postgres-data:
driver: local
mysql-data:
driver: local
httpd-log:
driver: local
コンテナ名を確認する。
※コンテナ名には、プロジェクト名の影響は無いみたい。
ターミナル
$ docker-compose ps
Name Command State Ports
--------------------------------------------------------
httpd httpd-foreground Up 80/tcp
php docker-php-entrypoint php-fpm Up 9000/tcp
ネットワークの状況を確認する
※「web_」というプレフィックスが付いている(プロジェクト名が付加されている)
ターミナル
$ docker network ls
NETWORK ID NAME DRIVER SCOPE
...
97c7b3be4894 web_default bridge local
...
ボリュームの状況を確認する
※「web_」というプレフィックスが付いている(プロジェクト名が付加されている)
ターミナル
$ docker volume ls
DRIVER VOLUME NAME
local web_httpd-log
local web_mysql-data
local web_postgres-data
まとめ
プロジェクト名が変わると永続化しているボリュームが変わってしまうので、注意が必要。
出来る限り、プロジェクト名を意識して「-p」オプションを付けた方が無難な感じですね。
「docker-compose.yml」ファイルでプロジェクト名を定義できたらいいのに・・・できないのかな・・・?