출처 : https://stackoverflow.com/questions/43671482/how-to-run-docker-compose-up-d-at-system-start-up
crontab의 @reboot 또는 (옛날 방식) /etc/rc.local 파일을 사용 해도 되지만, 앞에 10초 이상 sleep 을 주지 않으면 실행이 안됩니다.
@reboot (sleep 15s ; cd /myapps ; /usr/local/bin/docker-compose up -d )& |
아래 처럼 system service로 해당 앱을 등록 시켜두면 다른 서비스처럼 자동시작/시작/종료 를 제어할 수 있습니다.
# /etc/systemd/system/docker-compose-app.service
[Unit]
Description=Docker Compose Application Service
Requires=docker.service
After=docker.service
[Service]
Type=oneshot
RemainAfterExit=yes
WorkingDirectory=/srv/docker
ExecStart=/usr/local/bin/docker-compose up -d
ExecStop=/usr/local/bin/docker-compose down
TimeoutStartSec=0
[Install]
WantedBy=multi-user.target
WorkingDirectory
변수값은 실제 프로젝트 경로로 변경 해야 합니다.
부팅시 서비스가 자동 시작하도록 설정 합니다.
systemctl enable docker-compose-app
======
zabbix 예제
# /etc/systemd/system/zbx.service
[Unit]
Description=Docker Compose Zabbix Application Service
Requires=docker.service
After=docker.service
[Service]
Type=oneshot
RemainAfterExit=yes
WorkingDirectory=/root/zabbix-docker
ExecStart=/usr/local/bin/docker-compose -f ./docker-compose_v3_centos_mysql_latest.yaml up -d
ExecStop=/usr/local/bin/docker-compose -f ./docker-compose_v3_centos_mysql_latest.yaml down
TimeoutStartSec=0
[Install]
WantedBy=multi-user.target
서비스가 자동 시작 설정
systemctl enable zbx
서비스 시작
systemctl start zbx
서비스 종료
systemctl stop zbx
'Docker , Kubernetes' 카테고리의 다른 글
"컨테이너 관리의 정석" 쿠버네티스의 이해와 활용 - IDG (0) | 2019.02.10 |
---|---|
consul, nomad, vault (0) | 2018.03.18 |