Swarmlab docs

Application development in a distributed system

Development of Distributed Systems from Design to Application


You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

145 lines
2.8 KiB

= 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
----