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.
144 lines
2.8 KiB
144 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
|
|
----
|
|
|
|
|