= Deploy == Create Yaml file .docker-compose [source,yaml] ---- services: myapp: //<1> image: node:8.2.1-alpine //<2> hostname: myapp volumes: - /PATH_to_app/app.js:/code/app.js //<3> - /PATH_to_app/index.html:/code/index.html //<3> ports: - "8000:8000" //<4> networks: - mynet //<5> deploy: restart_policy: delay: 10s max_attempts: 10 window: 60s replicas: 1 placement: constraints: - node.labels.myapp==true //<6> resources: //<8> limits: cpus: '0.50' memory: 500M reservations: cpus: '0.25' memory: 200M restart_policy: //<9> condition: on-failure delay: 5s max_attempts: 5 window: 120s update_config: parallelism: 2 delay: 10s order: stop-first environment: - MYPASSWORD=${PASSWORD} - NODENAME={{.Node.Hostname}} - NODEID={{.Node.ID}} - SERVICEID={{.Service.ID}} - SERVICENAME={{.Service.Name}} - TASKID={{.Task.ID}} - TASKNAME={{.Task.Name}} - TASKREPID={{.Task.Slot}} mybrowser: image: hub.swarmlab.io:5480/hybrid-firefox deploy: mode: replicated restart_policy: delay: 10s max_attempts: 10 window: 60s replicas: 2 placement: max_replicas_per_node: 1 constraints: - node.labels.group==myapp ports: - "8080:80" - "9443:443" volumes: //<7> - /PATH_to_FILE/my.conf:/DIR_in_container/my.conf //<3> #- /PATH_to_FILE/public.crt:/etc/nginx/public.crt //<3> #- /PATH_to_FILE/private.key:/etc/nginx/private.key //<3> - /tmp/.X11-unix:/tmp/.X11-unix //<10> networks: - myapp //<5> #privileged: true environment: - DISPLAY=\${DISPLAY} //<10> #cap_add: # - NET_ADMIN //<11> networks: myapp: //<5> driver: overlay ---- <1> Service name <2> Image name <3> Volume (bind) to Use <4> Expose port <5> Network to Use <6> Node Placement <7> Start server <8> Resources config <9> Restart policy <10> X app <11> use host net == start service === docker-compose .Docker-compose [source,bash] ---- env MYPASSWORD=v9ptvq4dedcrtcrykjcubk28j \ docker-compose -f file.yml up ---- === docker swarm .Docker swarm [source,bash] ---- env PASSWORD=K507R1zQ6Jifc9MAW3 \ docker stack deploy -c file.yml ondemand_os2 ---- == stop service === docker-compose .Docker-compose [source,bash] ---- docker-compose -f file.yml down ---- === docker swarm .Docker swarm [source,bash] ---- docker service rm ondemand_os2_myapp docker service rm ondemand_os2_wyweb ----