Last active
December 30, 2015 20:57
-
-
Save arthurgeek/b87a70d59b03af04a1ad to your computer and use it in GitHub Desktop.
Revisions
-
arthurgeek revised this gist
Dec 30, 2015 . 1 changed file with 2 additions and 2 deletions.There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -2,11 +2,11 @@ Description=My application # Requirements Requires=etcd2.service Requires=docker.service # Dependency ordering After=etcd2.service After=docker.service [Service] -
arthurgeek created this gist
Dec 30, 2015 .There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -0,0 +1,43 @@ [Unit] Description=My application # Requirements Requires=etcd.service Requires=docker.service # Dependency ordering After=etcd.service After=docker.service [Service] # Let processes take awhile to start up (for first run Docker containers) TimeoutStartSec=0 # Change killmode from "control-group" to "none" to let Docker remove # work correctly. KillMode=none # Run as user core, which have the necessary credentials for pulling from # private registry User=core # Environment variables to DRY up config Environment=APPLICATION=my-app Environment=IMAGE=user/my-app # Pre-start and Start ## Directives with "=-" are allowed to fail without consequence ExecStartPre=-/usr/bin/docker kill $APPLICATION ExecStartPre=-/usr/bin/docker rm $APPLICATION ExecStartPre=/usr/bin/docker pull $IMAGE ## The run command gets all config variables from etcd and construct the ## docker run command passing all variables ExecStart=/bin/sh -c '/usr/bin/docker run --name $APPLICATION \ $(for e in $(etcdctl ls /daemons/config/$APPLICATION); do \ echo "-e $(basename $e)=$(etcdctl get $e) "; \ done) \ $IMAGE' # Stop ExecStop=/usr/bin/docker stop $APPLICATION