mirror of
https://github.com/Joxit/docker-registry-ui.git
synced 2025-04-27 15:39:54 +03:00
42 lines
No EOL
1.5 KiB
Bash
Executable file
42 lines
No EOL
1.5 KiB
Bash
Executable file
#!/usr/bin/env bash
|
|
|
|
if ! [[ `docker network ls | grep "traefik-net"` ]] &>/dev/null; then
|
|
echo "Setup traefik network"
|
|
docker network create --driver=overlay --attachable traefik-net
|
|
fi
|
|
|
|
|
|
if ! [[ `docker service ls | grep "traefik2"` ]] &>/dev/null; then
|
|
dir="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
|
|
|
|
# ensure acme.json wich will contains the letsencrypt certificates
|
|
touch "$dir"/acme.json && chmod 600 "$dir"/acme.json
|
|
|
|
docker service create --name traefik2 --detach=false \
|
|
--constraint node.role==manager \
|
|
--update-parallelism 1 --update-delay 10s \
|
|
--mode global \
|
|
--publish 80:80 \
|
|
--publish 443:443 \
|
|
--read-only \
|
|
--mount type=bind,source="$(pwd)"/acme.json,target=/etc/traefik/acme.json \
|
|
--mount type=bind,source=/var/run/docker.sock,target=/var/run/docker.sock \
|
|
--network traefik-net \
|
|
traefik:1.7.4-alpine \
|
|
--entrypoints='Name:http Address::80 Redirect.EntryPoint:https' \
|
|
--entrypoints='Name:https Address::443 TLS' \
|
|
--defaultentrypoints=http,https \
|
|
--acme \
|
|
--acme.storage=/etc/traefik/acme.json \
|
|
--acme.entryPoint=https \
|
|
--acme.httpChallenge.entryPoint=http \
|
|
--acme.email=contact@mydomain.com \
|
|
--docker \
|
|
--docker.swarmMode \
|
|
--docker.domain=mydomain.com \
|
|
--docker.exposedByDefault=false \
|
|
--docker.watch \
|
|
--api
|
|
fi
|
|
|
|
docker stack deploy --compose-file docker-compose-swarm.yml docker-registry |