Add the ci scripts
ci/woodpecker/manual/build Pipeline was successful Details

This commit is contained in:
Sameer Rahmani 2023-07-21 20:30:05 +01:00
parent f164d48e0c
commit 3befa0aec8
Signed by: lxsameer
GPG Key ID: B0A4AF28AB9FD90B
3 changed files with 90 additions and 0 deletions

28
.woodpecker/build.yml Normal file
View File

@ -0,0 +1,28 @@
clone:
git:
image: woodpeckerci/plugin-git
settings:
depth: 1
lfs: false
recursive: false
pipeline:
build:
image: woodpeckerci/plugin-docker-buildx
secrets: [docker_username, docker_password]
settings:
repo: snowd4zzle/deliciousium
registry: docker.io
dockerfile: Dockerfile
tags: latest
username:
from_secret: docker_username
password:
from_secret: docker_password
deploy:
image: docker:24.0.2-cli-alpine3.18
commands:
- docker stack deploy -c service.yml deliciousium --prune
volumes:
- /var/run/docker.sock:/var/run/docker.sock

14
Dockerfile Normal file
View File

@ -0,0 +1,14 @@
FROM debian:12-slim
WORKDIR /app
COPY . .
RUN apt-get -y update && apt-get install -y hugo && hugo
FROM busybox
COPY --from=0 /app/public /app
WORKDIR /app
CMD ["busybox", "httpd", "-f", "-v", "-p", "3000"]

48
service.yml Normal file
View File

@ -0,0 +1,48 @@
version: "3.9"
services:
serene-docs:
image: snowd4zzle/deliciousium
environment:
USER_UID: 1100
USER_GID: 1100
security_opt:
- no-new-privileges:true
networks:
- public_lb
volumes:
- /var/run/docker.sock:/var/run/docker.sock
deploy:
labels:
- "traefik.enable=true"
- "traefik.http.routers.delic.rule=Host(`deliciousium.com`)"
- "traefik.http.routers.delic.entrypoints=websecure"
- "traefik.http.routers.delic.tls=true"
- "traefik.http.routers.delic.tls.certresolver=default"
- "traefik.http.services.delic-web.loadbalancer.server.port=3000"
- "traefik.http.services.delic-web.loadbalancer.server.scheme=http"
- "traefik.http.routers.delic.service=delic-web"
- "traefik.docker.network=public_lb"
- "traefik.http.middlewares.delic-ratelimit.ratelimit.average=50"
- "traefik.http.middlewares.delic-ratelimit.ratelimit.burst=10"
- "traefik.http.routers.delic.middlewares=delic-ratelimit"
mode: replicated
replicas: 1
restart_policy:
condition: on-failure
max_attempts: 3
update_config:
parallelism: 1
delay: 5s
order: stop-first
logging:
options:
max-size: "10m"
max-file: "3"
networks:
public_lb:
external: true
name: public_lb