개발 공부/Docker

docker-compose.yml 환경변수 설정

2023. 3. 15. 03:00
목차
  1. 환경변수 설정법
  2. NGINX 환경변수 바인딩

환경변수 설정법

.env 파일에 환경변수를 작성하면 별다른 설정 없이도 간단히 docker-compose.yml 에서 접근 할 수 있다.

 

docker-compose.yml

shop-api-db:
    image: postgres
    restart: always
    container_name: shop-api-db
    environment:
      - POSTGRES_USER=${POSTGRES_USER}
      - POSTGRES_PASSWORD=${POSTGRES_PASSWORD}
      - POSTGRES_DB=${POSTGRES_DB}
    ports:
      - ${POSTGRES_PORT}:${POSTGRES_PORT}
    networks:
      - shop-api-networks

 

NGINX 환경변수 바인딩

아래 예시처럼 environment 옵션에 환경변수의 이름과 값을 직접 바인딩

 

docker-compose.yml

shop-nginx:
    image: nginx:stable-alpine
    container_name: shop-nginx
    volumes:
      - ./nginx/templates:/etc/nginx/templates
      - ./nginx/nginx.conf:/etc/nginx/nginx.conf:ro
      - ./cert/cert.pem:/etc/nginx/cert/cert.pem
      - ./cert/key.pem:/etc/nginx/cert/key.pem
    environment:
      - NGINX_PORT=${NGINX_PORT}
      - SERVER_PORT=${SERVER_PORT}
      - API_NAME=${API_NAME}
    ports:
      - ${NGINX_PORT}:${NGINX_PORT}
    depends_on:
      - shop-api
    networks:
      - shop-api-networks

 

그럼 nginx 디렉토리에서 환경변수를 전달받아 아래 예시처럼 사용 가능하다.

 

default.conf.template

server {
    listen ${NGINX_PORT} ssl;
    listen [::]:${NGINX_PORT} ssl;
    ssl_certificate     cert/cert.pem;
    ssl_certificate_key cert/key.pem;

    server_name ${API_NAME};

    charset utf-8;
    client_max_body_size 50M;

    location / {
        proxy_set_header Host $http_host;
        proxy_set_header X-Forwarded-For $remote_addr;
        proxy_set_header X-Scheme $scheme;
        proxy_set_header X-Forwarded-Proto $scheme;

        # proxy_set_header X-Real-IP $remote_addr;
        proxy_pass http://shop-api:${SERVER_PORT};
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
        proxy_next_upstream error timeout http_502 http_503 http_504;
    }
}

'개발 공부 > Docker' 카테고리의 다른 글

Docker Compose 사용해보기  (0) 2023.04.04
Dockerfile과 docker-compose.yml의 차이  (0) 2023.03.12
Docker란  (0) 2023.03.12
  1. 환경변수 설정법
  2. NGINX 환경변수 바인딩
'개발 공부/Docker' 카테고리의 다른 글
  • Docker Compose 사용해보기
  • Dockerfile과 docker-compose.yml의 차이
  • Docker란
게으른 제이
게으른 제이
개발 관련 지식 및 다양한 정보들
게으른 제이
제이의 정보 블로그
게으른 제이
전체
오늘
어제
  • 분류 전체보기 (27) N
    • 개발 공부 (1)
      • Node.js (1)
      • NestJS (10)
      • Docker (4)
      • 기타 (1)
      • Rust (1)
      • CS (4)
      • Flutter (1)
    • 기록 (3) N
    • 정보 (1)
      • 일반 (0)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • Docker
  • Obsidian
  • LLM
  • OCP
  • Cache
  • flutter
  • redis
  • NestJS
  • CS
  • dependency-injection
  • DART
  • Tool
  • error

최근 댓글

최근 글

hELLO · Designed By 정상우.
게으른 제이
docker-compose.yml 환경변수 설정
상단으로

티스토리툴바

개인정보

  • 티스토리 홈
  • 포럼
  • 로그인

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.