kyucumber
전체 글 보기

systemd에서 환경변수 사용하기

systemd에서 관리하고 있는 docker-compose 파일 내부의 환경변수를 가져오는 부분이 제대로 동작하지 않았습니다.

  • docker-compose.yml
version: '3' services: server: container_name: server image: ${APP_IMAGE_TAG} environment: SPRING_PROFILES_ACTIVE: ${PROFILE} HEAP_OPTS: ${HEAP_OPTS} PINPOINT_ENABLED: "true"
  • systemd
[Unit] Description=Baeminservice service After=network-online.target [Service] Type=simple User=ec2-user Group=ec2-user WorkingDirectory=/kyucumber/service ExecStart=/bin/docker-compose up ExecStop=/bin/docker-compose down LimitNOFILE=65535 LimitNPROC=12000 TimeoutStopSec=90 SuccessExitStatus=130 143 Restart=always [Install] WantedBy=multi-user.target

systemd에서 환경변수를 사용하기 위해서는 별도의 Environment 혹은 EnvironmentFile을 등록해야 합니다.

systemd에서 사용할 EnvironmentFile 생성하기

systemd에서 사용할 EnvironmentFile의 포맷은 아래와 같습니다.

EnvironmentFile

APP_IMAGE_TAG=test PROFILE=develop HEAP_OPTS='-Xmx1G -Xms1G'

systemd

[Unit] Description=Baeminservice service After=network-online.target [Service] Type=simple User=ec2-user Group=ec2-user // ... // 이 부분을 추가해주어야 합니다. EnvironmentFile=/kyucumber/EnvironmentFile

위와 같이 EnvironmentFile을 등록하면 systemd에서 APP_IMAGE_TAG, PROFILE 등의 환경 변수를 사용할 수 있습니다.