Add caddy version control, explicit portfolio version, cache management
All checks were successful
Portfolio/pipeline/head This commit looks good
All checks were successful
Portfolio/pipeline/head This commit looks good
This commit is contained in:
@@ -2,10 +2,8 @@
|
|||||||
root * /usr/share/caddy
|
root * /usr/share/caddy
|
||||||
file_server
|
file_server
|
||||||
|
|
||||||
# No cache, always update
|
# Client cache
|
||||||
header {
|
header {
|
||||||
Cache-Control "no-cache, no-store, must-revalidate"
|
Cache-Control "public, max-age=86400"
|
||||||
Pragma "no-cache"
|
|
||||||
Expires "0"
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -1,3 +1,5 @@
|
|||||||
|
ARG CADDY_VERSION
|
||||||
|
|
||||||
# --- BUILD ---
|
# --- BUILD ---
|
||||||
FROM node:24-alpine AS build
|
FROM node:24-alpine AS build
|
||||||
RUN corepack enable && corepack prepare pnpm@latest --activate
|
RUN corepack enable && corepack prepare pnpm@latest --activate
|
||||||
@@ -15,7 +17,7 @@ COPY . .
|
|||||||
RUN pnpm build
|
RUN pnpm build
|
||||||
|
|
||||||
# --- DEPLOY ---
|
# --- DEPLOY ---
|
||||||
FROM caddy:alpine
|
FROM caddy:${CADDY_VERSION}-alpine
|
||||||
COPY --from=build /app/dist /usr/share/caddy
|
COPY --from=build /app/dist /usr/share/caddy
|
||||||
COPY Caddyfile /etc/caddy/Caddyfile
|
COPY Caddyfile /etc/caddy/Caddyfile
|
||||||
|
|
||||||
|
|||||||
14
Jenkinsfile
vendored
14
Jenkinsfile
vendored
@@ -4,10 +4,15 @@ pipeline {
|
|||||||
DOCKER_HOST = "unix:///var/run/docker.sock"
|
DOCKER_HOST = "unix:///var/run/docker.sock"
|
||||||
}
|
}
|
||||||
stages {
|
stages {
|
||||||
stage('Docker Build') {
|
stage('Build') {
|
||||||
steps {
|
steps {
|
||||||
echo "Build new docker image from ${env.BRANCH_NAME}..."
|
// Get Caddy version
|
||||||
sh "docker build -t portfolio:${env.BRANCH_NAME} ."
|
sh "cp .env.dist .env"
|
||||||
|
// Push portfolio version
|
||||||
|
sh "echo '\nPORTFOLIO_VERSION=${env.BRANCH_NAME}-${env.BUILD_NUMBER}' >> .env"
|
||||||
|
|
||||||
|
echo "Building new portfolio version..."
|
||||||
|
sh "docker compose build"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
stage('Deploy') {
|
stage('Deploy') {
|
||||||
@@ -19,6 +24,9 @@ pipeline {
|
|||||||
echo "Deploy new portfolio version..."
|
echo "Deploy new portfolio version..."
|
||||||
sh "docker compose up -d"
|
sh "docker compose up -d"
|
||||||
|
|
||||||
|
// Update caddy-reverse-proxy cache
|
||||||
|
sh "docker exec caddy-reverse-proxy caddy reload --config /etc/caddy/Caddyfile"
|
||||||
|
|
||||||
// Keep updated docker-compose.yml and Caddyfile for safety
|
// Keep updated docker-compose.yml and Caddyfile for safety
|
||||||
sh "cp docker-compose.yml /backup-portfolio/docker-compose.yml"
|
sh "cp docker-compose.yml /backup-portfolio/docker-compose.yml"
|
||||||
sh "docker cp portfolio:/etc/caddy/Caddyfile /backup-portfolio/Caddyfile"
|
sh "docker cp portfolio:/etc/caddy/Caddyfile /backup-portfolio/Caddyfile"
|
||||||
|
|||||||
@@ -1,6 +1,10 @@
|
|||||||
services:
|
services:
|
||||||
portfolio:
|
portfolio:
|
||||||
image: portfolio:master
|
build:
|
||||||
|
context: .
|
||||||
|
args:
|
||||||
|
- CADDY_VERSION=${CADDY_VERSION}
|
||||||
|
image: portfolio:${PORTFOLIO_VERSION}
|
||||||
container_name: portfolio
|
container_name: portfolio
|
||||||
restart: always
|
restart: always
|
||||||
networks:
|
networks:
|
||||||
|
|||||||
Reference in New Issue
Block a user