概要
- .envファイルを用いてdocker-compose.ymlのポート番号等の情報を外出しする方法をまとめる。
完成したもの
前提
- 今回、ポート番号を外出しするdocker-compose.ymlファイルは下記で作成した環境のものを使用する。
方法
-
下記コマンドを実行してdocker-compose.ymlファイルと同じ階層に.envファイルを作成して開く。
$ vi .env
-
下記のように.envファイルを記載する。
laravel9_test/docker/.env# local側 Nginxのポート NGINX_PORT=8000 # local側 MySQLのポート MYSQL_PORT=4306
-
下記のようにdocker-compose.ymlを編集して.envで定義した値を取得する
laravel9_test/docker/docker-compose.ymlversion: '3' services: php: build: ./php volumes: - ../project:/var/www/html nginx: image: nginx:1.15.6 ports: - ${NGINX_PORT}:80 volumes: - ./nginx/default.conf:/etc/nginx/conf.d/default.conf - ../project:/var/www/html depends_on: - php mysql: image: mysql:8.0 ports: - ${MYSQL_PORT}:3306 volumes: - ./mysql/my.cnf:/etc/mysql/conf.d/my.cnf - ./mysql/initdb.d:/docker-entrypoint-initdb.d - ./mysql/db:/var/lib/mysql environment: MYSQL_ROOT_PASSWORD: root TZ: "Asia/Tokyo"
-
当該のコンテナが起動している場合は停止する。
-
当該のコンテナを削除する。
-
下記コマンドを実行して設定を反映する。
$ docker-compose up -d --build $ docker-compose exec php composer install $ docker-compose exec php cp .env.example .env $ docker-compose exec php php artisan key:generate $ docker-compose exec php php artisan migrate
-
http://localhost:8000/にアクセスして下記の様な画面が表示されれば作業は完了となる。