david
2 years ago
13 changed files with 3896 additions and 3327 deletions
@ -0,0 +1,48 @@
|
||||
--- |
||||
kind: pipeline |
||||
name: default |
||||
type: docker |
||||
|
||||
steps: |
||||
- name: build static files for quizzer |
||||
image: node:17.7.2-alpine |
||||
commands: |
||||
- 'npm install' |
||||
- 'npm build' |
||||
|
||||
- name: build quizzer image |
||||
image: plugins/docker |
||||
settings: |
||||
username: |
||||
from_secret: docker_username |
||||
password: |
||||
from_secret: docker_password |
||||
repo: daveplsno/quizzer |
||||
tags: |
||||
- latest |
||||
- '${DRONE_COMMIT_SHA:0:8}' |
||||
|
||||
- name: deploy quizzer to swarm |
||||
image: docker:dind |
||||
environment: |
||||
DEPLOY_ENV: |
||||
from_secret: DEPLOY_ENV |
||||
volumes: |
||||
- name: dockersock |
||||
path: /var/run/docker.sock |
||||
commands: |
||||
- export $DEPLOY_ENV |
||||
- export imageTag='${DRONE_COMMIT_SHA:0:8}' |
||||
- docker stack deploy -c ./swarm/docker-compose.quizzer.yml quizzer |
||||
- docker service update --force --update-parallelism 1 --update-delay 30s quizzer_app |
||||
|
||||
volumes: |
||||
- name: dockersock |
||||
host: |
||||
path: /var/run/docker.sock |
||||
|
||||
trigger: |
||||
branch: |
||||
- master |
||||
event: |
||||
- push |
@ -0,0 +1,5 @@
|
||||
#!/bin/bash |
||||
cd .. |
||||
rm -rf ./build ./node_modules |
||||
npm install && npm run build |
||||
docker build -t daveplsno/quizzer . |
@ -0,0 +1,8 @@
|
||||
# export vars |
||||
export $(cat .env.deploy) |
||||
|
||||
# deploy to swarm |
||||
docker stack deploy -c ./docker-compose.quizzer.yml --prune quizzer |
||||
|
||||
# unset the env vars |
||||
unset $(cat .env.deploy | cut -f 1 -d '=' $1) |
@ -0,0 +1,28 @@
|
||||
--- |
||||
version: '3.8' |
||||
|
||||
networks: |
||||
swarmnet-public: |
||||
external: true |
||||
|
||||
services: |
||||
app: |
||||
image: daveplsno/quizzer:${imageTag? Variable not set} |
||||
hostname: quizzer |
||||
networks: |
||||
- swarmnet-public |
||||
deploy: |
||||
restart_policy: |
||||
condition: on-failure |
||||
placement: |
||||
constraints: |
||||
- node.labels.${quizzerNode? Variable not set} == true |
||||
labels: |
||||
- traefik.enable=true |
||||
- traefik.docker.network=swarmnet-public |
||||
- traefik.constraint-label=swarmnet-public |
||||
- traefik.http.routers.${quizzerTraefikGrp? Variable not set}.rule=Host(`${quizzerTraefikUrl? Variable not set}`) |
||||
- traefik.http.routers.${quizzerTraefikGrp? Variable not set}.entrypoints=websecure |
||||
- traefik.http.routers.${quizzerTraefikGrp? Variable not set}.tls=true |
||||
- traefik.http.routers.${quizzerTraefikGrp? Variable not set}.tls.certresolver=le |
||||
- traefik.http.services.${quizzerTraefikGrp? Variable not set}.loadbalancer.server.port=80 |
@ -0,0 +1,3 @@
|
||||
#!/bin/bash |
||||
docker service scale quizzer_app=0 |
||||
docker service scale quizzer_app=1 |
Loading…
Reference in new issue