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
등의 환경 변수를 사용할 수 있습니다.