Compose: env_file์— ๋Œ€ํ•œ ์ƒ๋Œ€ ๊ฒฝ๋กœ

์— ๋งŒ๋“  2017๋…„ 04์›” 26์ผ  ยท  3์ฝ”๋ฉ˜ํŠธ  ยท  ์ถœ์ฒ˜: docker/compose

.env ํŒŒ์ผ์ด docker-compose ํŒŒ์ผ๊ณผ ๋™์ผํ•œ ํด๋”์— ์žˆ์ง€ ์•Š์„ ๋•Œ ๋ฌธ์ œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ํ•˜์œ„ ํด๋”์— ๋ฐฐ์น˜ํ•˜๊ณ  ์ฐธ์กฐํ•˜๋ฉด ๋ณ€์ˆ˜๊ฐ€ ์ •์˜๋˜์ง€ ์•Š์•˜์œผ๋ฉฐ ๊ธฐ๋ณธ์ ์œผ๋กœ ๋นˆ ๋ฌธ์ž์—ด์ด๋œ๋‹ค๊ณ  ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค. .env ํŒŒ์ผ์„ ์ œ๊ฑฐํ•˜๋ฉด .env ํŒŒ์ผ์„ ์ฐพ์„ ์ˆ˜ ์—†๋‹ค๋Š” ๋ฉ”์‹œ์ง€๊ฐ€ ํ‘œ์‹œ๋˜๋ฏ€๋กœ ํŒŒ์ผ์„ ์ฐพ์ง€ ๋งŒ ์•„๋ฌด ์ž‘์—…๋„ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. .env ํŒŒ์ผ์„ docker-compose ํŒŒ์ผ๊ณผ ๋™์ผํ•œ ๋””๋ ‰ํ† ๋ฆฌ๋กœ ์ด๋™ํ•˜๊ณ  ๊ฒฝ๋กœ๋ฅผ ์—…๋ฐ์ดํŠธํ•˜๊ฑฐ๋‚˜ ๋Œ€์‹  ์‹ฌ๋ณผ๋ฆญ ๋งํฌ๋ฅผ ๋งŒ๋“ค๋ฉด ๋ชจ๋‘ ์ •์ƒ์ ์œผ๋กœ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค.

๋ถ„๋ช…ํžˆ docker-compose๋Š” docker-compose ํŒŒ์ผ๊ณผ ๋™์ผํ•œ ๋””๋ ‰ํ† ๋ฆฌ์— ์žˆ์ง€ ์•Š์€ env ํŒŒ์ผ์„๋กœ๋“œํ•˜๋Š” ๋ฐ ๋ฌธ์ œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

ํ˜„์žฌ ์ €๋Š” ํ•˜์œ„ ํด๋”์—์žˆ๋Š” Laravel ํ”„๋กœ์ ํŠธ์™€ ๊ณต์œ ๋˜๋Š” .env ํŒŒ์ผ์„ ์‹ฌ๋ณผ๋ฆญ ๋งํฌํ•˜์—ฌ "์ˆ˜์ •"ํ–ˆ์Šต๋‹ˆ๋‹ค.

๋‚ด ๋„์ปค ์ž‘์„ฑ ํŒŒ์ผ (๊ฐ„์ฒด) :

version: '3'

services:
  mysql:
    image: mariadb
    volumes:
      - mysql_data:/var/lib/mysql/data
    env_file:
      - ./api/.env
    environment:
      MYSQL_DATABASE: ${DB_DATABASE}
      MYSQL_USER: ${DB_USERNAME}
      MYSQL_PASSWORD: ${DB_PASSWORD}
      MYSQL_ROOT_PASSWORD: ${DB_PASSWORD}

volumes:
  mysql_data:
kinquestion

๊ฐ€์žฅ ์œ ์šฉํ•œ ๋Œ“๊ธ€

์•ˆ๋…•ํ•˜์„ธ์š” @ shin-, ์ •ํ™•ํ•œ ๋ฌธ์ œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.
๊ณต์‹ ๋ฌธ์„œ (https://docs.docker.com/compose/env-file/)์™€ ๊ฒŒ์‹œ ํ•œ ์ฃผ์ œ๋ฅผ ์ฝ์—ˆ์ง€๋งŒ ์ œ ์งˆ๋ฌธ์— ๋‹ตํ•˜์ง€ ๋ชปํ–ˆ์Šต๋‹ˆ๋‹ค. OP๊ฐ€ ๋งํ–ˆ๋“ฏ์ด .env ํŒŒ์ผ์ด docker-compose.yml์˜ ๊ฒฝ๋กœ์™€ ๋‹ค๋ฅธ ๊ฒฝ๋กœ์— ์žˆ์œผ๋ฉด ์ž‘๋™ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

version: '3.7'
services:
  postgres:
    image: postgres:alpine
    restart: always
    environment:
      POSTGRES_DB: ${DB_NAME}
      POSTGRES_USER: ${DB_USER}
      POSTGRES_PASSWORD: ${DB_PASSWORD}
  php:
    build:
      context: .
      dockerfile: ./docker/php/Dockerfile
    restart: always
    env_file:
      - ./app/.env
    volumes:
      - ./app:/usr/src/app
  nginx:
    image: nginx:1.15.3-alpine
    restart: always
    volumes:
      - ./app:/usr/src/app
      - ./docker/nginx/default.conf:/etc/nginx/conf.d/default.conf:ro
    ports:
      - ${NGINX_PORT}:80
    depends_on:
      - php

./app/ ๋‚ด๋ถ€์—๋Š” ์ž์ฒด .env๊ฐ€์žˆ๋Š” ์‹ฌํฌ๋‹ˆ ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์ด ์žˆ๊ณ  ์ด๋ฏธ์ง€๋ฅผ ๋นŒ๋“œํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋˜๋Š” env vars๋ฅผ ๋™์ผํ•œ .env์— ๋„ฃ๊ณ  ์ž‘๋™ํ•˜๋„๋กํ•˜๋ ค๋ฉด 2 x .env, ํ•˜๋‚˜๋Š” docker- ๋‚ด ์•ฑ ๋””๋ ‰ํ† ๋ฆฌ์— ๋””๋ ‰ํ† ๋ฆฌ์™€ ํ•˜๋‚˜๋ฅผ ์ž‘์„ฑํ•˜์‹ญ์‹œ์˜ค.

๋ชจ๋“  3 ๋Œ“๊ธ€

์ด๊ฒƒ์€ ์ด์ „์— ๋‹ต๋ณ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

4001

4618

๊ธฐํƒ€

๋ช…ํ™•์„ฑ ํŽ˜์ด์ง€ ์ฐธ์กฐ : https://docs.docker.com/compose/environment-variables/

์•ˆ๋…•ํ•˜์„ธ์š” @ shin-, ์ •ํ™•ํ•œ ๋ฌธ์ œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.
๊ณต์‹ ๋ฌธ์„œ (https://docs.docker.com/compose/env-file/)์™€ ๊ฒŒ์‹œ ํ•œ ์ฃผ์ œ๋ฅผ ์ฝ์—ˆ์ง€๋งŒ ์ œ ์งˆ๋ฌธ์— ๋‹ตํ•˜์ง€ ๋ชปํ–ˆ์Šต๋‹ˆ๋‹ค. OP๊ฐ€ ๋งํ–ˆ๋“ฏ์ด .env ํŒŒ์ผ์ด docker-compose.yml์˜ ๊ฒฝ๋กœ์™€ ๋‹ค๋ฅธ ๊ฒฝ๋กœ์— ์žˆ์œผ๋ฉด ์ž‘๋™ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

version: '3.7'
services:
  postgres:
    image: postgres:alpine
    restart: always
    environment:
      POSTGRES_DB: ${DB_NAME}
      POSTGRES_USER: ${DB_USER}
      POSTGRES_PASSWORD: ${DB_PASSWORD}
  php:
    build:
      context: .
      dockerfile: ./docker/php/Dockerfile
    restart: always
    env_file:
      - ./app/.env
    volumes:
      - ./app:/usr/src/app
  nginx:
    image: nginx:1.15.3-alpine
    restart: always
    volumes:
      - ./app:/usr/src/app
      - ./docker/nginx/default.conf:/etc/nginx/conf.d/default.conf:ro
    ports:
      - ${NGINX_PORT}:80
    depends_on:
      - php

./app/ ๋‚ด๋ถ€์—๋Š” ์ž์ฒด .env๊ฐ€์žˆ๋Š” ์‹ฌํฌ๋‹ˆ ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์ด ์žˆ๊ณ  ์ด๋ฏธ์ง€๋ฅผ ๋นŒ๋“œํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋˜๋Š” env vars๋ฅผ ๋™์ผํ•œ .env์— ๋„ฃ๊ณ  ์ž‘๋™ํ•˜๋„๋กํ•˜๋ ค๋ฉด 2 x .env, ํ•˜๋‚˜๋Š” docker- ๋‚ด ์•ฑ ๋””๋ ‰ํ† ๋ฆฌ์— ๋””๋ ‰ํ† ๋ฆฌ์™€ ํ•˜๋‚˜๋ฅผ ์ž‘์„ฑํ•˜์‹ญ์‹œ์˜ค.

Afaik ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋Š” ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์—์„œ ๊ฐ€์ ธ ์™”์ง€๋งŒ ๋„์ปค ์ž‘์„ฑ ํŒŒ์ผ์—์„œ๋Š” ์‚ฌ์šฉํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค (NGINX_PORT์—์„œํ–ˆ๋˜ ๊ฒƒ์ฒ˜๋Ÿผ). ๋™์ผํ•œ ๋””๋ ‰ํ† ๋ฆฌ์—์žˆ๋Š” ๋ณ„๋„์˜ .env ํŒŒ์ผ์„ ์‚ฌ์šฉํ•˜๊ณ  ์‹ค์ œ๋กœ๋Š” ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์—์„œ๋กœ๋“œํ•ฉ๋‹ˆ๋‹ค. ์ •๋ง ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.

์ด ํŽ˜์ด์ง€๊ฐ€ ๋„์›€์ด ๋˜์—ˆ๋‚˜์š”?
0 / 5 - 0 ๋“ฑ๊ธ‰