Browse Source

+drone

pull/2/head
david 2 years ago
parent
commit
d499280cd6
  1. 48
      .drone.yml
  2. 4
      .gitignore
  3. 1
      .nvmrc
  4. 2
      Dockerfile
  5. 7116
      package-lock.json
  6. 2
      package.json
  7. 5
      swarm/build.bash
  8. 8
      swarm/deploy.bash
  9. 28
      swarm/docker-compose.quizzer.yml
  10. 2
      swarm/logs.bash
  11. 2
      swarm/remove.bash
  12. 3
      swarm/restart.bash
  13. 2
      swarm/status.bash

48
.drone.yml

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

4
.gitignore vendored

@ -23,4 +23,6 @@ yarn-debug.log*
yarn-error.log*
.env
/junk
/junk
/swarm/.env*

1
.nvmrc

@ -0,0 +1 @@
17.7.2

2
Dockerfile

@ -0,0 +1,2 @@
FROM nginx:alpine
COPY ./build /usr/share/nginx/html

7116
package-lock.json generated

File diff suppressed because it is too large Load Diff

2
package.json

@ -1,5 +1,5 @@
{
"name": "supachat",
"name": "quizzer",
"version": "0.1.0",
"private": true,
"dependencies": {

5
swarm/build.bash

@ -0,0 +1,5 @@
#!/bin/bash
cd ..
rm -rf ./build ./node_modules
npm install && npm run build
docker build -t daveplsno/quizzer .

8
swarm/deploy.bash

@ -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)

28
swarm/docker-compose.quizzer.yml

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

2
swarm/logs.bash

@ -0,0 +1,2 @@
#!/bin/bash
docker service logs quizzer_app -f

2
swarm/remove.bash

@ -0,0 +1,2 @@
#!/bin/bash
docker service rm quizzer_app

3
swarm/restart.bash

@ -0,0 +1,3 @@
#!/bin/bash
docker service scale quizzer_app=0
docker service scale quizzer_app=1

2
swarm/status.bash

@ -0,0 +1,2 @@
#!/bin/bash
docker stack services quizzer
Loading…
Cancel
Save