forked from miaomiao/miaomiao_blog
ci(deployment): Build and deployment CI pipeline
continuous-integration/drone/push Build is passing
Details
continuous-integration/drone/push Build is passing
Details
parent
0f92e3d87b
commit
cc2c4843be
|
@ -0,0 +1,44 @@
|
|||
kind: pipeline
|
||||
type: docker
|
||||
name: deployment
|
||||
|
||||
steps:
|
||||
- name: image-build
|
||||
image: docker:dind
|
||||
environment:
|
||||
DOCKER_USER:
|
||||
from_secret: docker_username
|
||||
DOCKER_PASSWORD:
|
||||
from_secret: docker_password
|
||||
commands:
|
||||
- echo $DOCKER_PASSWORD | docker login --username $DOCKER_USER --password-stdin registry.coincoingit.fr
|
||||
- DOCKER_BUILDKIT=1 docker build --tag registry.coincoingit.fr/miaomiao-blog:latest --file Dockerfile.production .
|
||||
- docker push registry.coincoingit.fr/miaomiao-blog:latest
|
||||
volumes:
|
||||
- name: docker-sock
|
||||
path: /var/run/docker.sock
|
||||
|
||||
- name: deploy
|
||||
image: docker:dind
|
||||
environment:
|
||||
DOCKER_USER:
|
||||
from_secret: docker_username
|
||||
DOCKER_PASSWORD:
|
||||
from_secret: docker_password
|
||||
commands:
|
||||
- echo $DOCKER_PASSWORD | docker login --username $DOCKER_USER --password-stdin registry.coincoingit.fr
|
||||
- docker stack deploy --with-registry-auth -c stack.yml miaomiao_blog
|
||||
volumes:
|
||||
- name: docker-sock
|
||||
path: /var/run/docker.sock
|
||||
|
||||
trigger:
|
||||
event:
|
||||
- push
|
||||
branch:
|
||||
- main
|
||||
|
||||
volumes:
|
||||
- name: docker-sock
|
||||
host:
|
||||
path: /var/run/docker.sock
|
|
@ -5,8 +5,8 @@ RUN apk add --no-cache libc6-compat
|
|||
WORKDIR /app
|
||||
|
||||
# Install dependencies based on the preferred package manager
|
||||
COPY package.json yarn.lock* package-lock.json* ./
|
||||
RUN yarn install --frozen-lockfile
|
||||
COPY package.json ./
|
||||
RUN yarn install
|
||||
|
||||
|
||||
# Rebuild the source code only when needed
|
||||
|
|
|
@ -0,0 +1,36 @@
|
|||
version: '3.8'
|
||||
|
||||
services:
|
||||
nodeserver:
|
||||
image: registry.coincoingit.fr/miaomiao-blog:latest
|
||||
deploy:
|
||||
restart_policy:
|
||||
condition: on-failure
|
||||
placement:
|
||||
constraints:
|
||||
- node.labels.role == main
|
||||
resources:
|
||||
limits:
|
||||
memory: 512M
|
||||
reservations:
|
||||
memory: 256M
|
||||
labels:
|
||||
- "traefik.enable=true"
|
||||
- "traefik.http.services.miaomiao_blog.loadbalancer.server.port=3000"
|
||||
- "traefik.http.services.miaomiao_blog.loadbalancer.healthCheck.path=/"
|
||||
- "traefik.http.services.miaomiao_blog.loadbalancer.healthCheck.interval=60s"
|
||||
- "traefik.http.services.miaomiao_blog.loadbalancer.healthCheck.timeout=10s"
|
||||
- "traefik.http.services.miaomiao_blog.loadbalancer.healthCheck.port=3000"
|
||||
- "traefik.http.routers.miaomiao_blog.rule=Host(`miaomiao.dev`)"
|
||||
- "traefik.http.routers.miaomiao_blog.entrypoints=websecure"
|
||||
- "traefik.http.routers.miaomiao_blog.tls=true"
|
||||
- "traefik.http.routers.miaomiao_blog.tls.certresolver=letsencryptresolver"
|
||||
networks:
|
||||
- net
|
||||
- traefik-public
|
||||
|
||||
networks:
|
||||
net:
|
||||
driver: overlay
|
||||
traefik-public:
|
||||
external: true
|
Loading…
Reference in New Issue