diff --git a/Caddyfile.back b/Caddyfile.back deleted file mode 100644 index 2f346c4..0000000 --- a/Caddyfile.back +++ /dev/null @@ -1,16 +0,0 @@ -{ - auto_https off -} - -:8080 { - root * /usr/share/caddy - file_server - encode gzip zstd - handle_errors { - @404 { - expression {http.error.status_code} == 404 - } - rewrite @404 /404.html - file_server - } -} diff --git a/Dockerfile b/Dockerfile index e6b80a1..b280731 100644 --- a/Dockerfile +++ b/Dockerfile @@ -6,10 +6,9 @@ WORKDIR /src RUN npm install \ && npm run build -FROM caddy:2.4.6-alpine +FROM nginx:1.21.5-alpine LABEL maintainer="marco.blessing@googlemail.com" -COPY --from=builder /src/Caddyfile /etc/caddy/Caddyfile -COPY --from=builder src/public /usr/share/caddy/ HEALTHCHECK --interval=15s --timeout=3s \ - CMD wget --no-verbose --tries=1 --spider http://localhost:8080/ || exit 1 -#RUN ls -la /usr/share/caddy/ + CMD wget --no-verbose --tries=1 --spider http://localhost:80/ || exit 1 +COPY --from=builder src/public /usr/share/nignx/html/ +COPY nginx.conf /etc/nginx/nginx.conf diff --git a/Dockerfile.Caddy b/Dockerfile.Caddy new file mode 100644 index 0000000..e6b80a1 --- /dev/null +++ b/Dockerfile.Caddy @@ -0,0 +1,15 @@ +FROM node:lts-buster-slim as builder +COPY . /src +#RUN ls -la +WORKDIR /src +#RUN ls -a +RUN npm install \ + && npm run build + +FROM caddy:2.4.6-alpine +LABEL maintainer="marco.blessing@googlemail.com" +COPY --from=builder /src/Caddyfile /etc/caddy/Caddyfile +COPY --from=builder src/public /usr/share/caddy/ +HEALTHCHECK --interval=15s --timeout=3s \ + CMD wget --no-verbose --tries=1 --spider http://localhost:8080/ || exit 1 +#RUN ls -la /usr/share/caddy/ diff --git a/README.md b/README.md index 11dcd6a..e550540 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,28 @@ -![logo](https://raw.githubusercontent.com/OCram85/Blog/master/assets/img/logo_square.png) +

+ + OCram85.com Logo + +

-> A personal blog about PowerShell, Automation and more. +

+ OCram85.com +

+ +

+ A personal blog about PowerShell, Automation and more. +

+ +

+ + Project License + + + Drone.IO Build + + + Docker Image Tags + +

## Tags @@ -11,6 +33,6 @@ ## Content -This image contains the hugo based sources for my personal blog. It's made with the [Congo theme](https://github.com/jpanther/congo). The static pages are served by the included caddy server with a custom config. The custom config is needed to redirect 404 errors to a custom page. +This image contains the hugo based sources for my personal blog. It's made with the [Congo theme](https://github.com/jpanther/congo). The static pages are served by the included nginx server with a custom config. The custom config is needed to redirect 404 errors to a custom page. -You can simply run the container with `docker run -it --rm -p "8080:8080" ocram85/blog:latest` +You can simply run the container with `docker run -it --rm -p "8080:80" ocram85/blog:latest` diff --git a/content/posts/pwsh-resources/res-posh.jpg b/content/posts/pwsh-resources/res-posh.jpg index ea9f32f..d761d2d 100644 Binary files a/content/posts/pwsh-resources/res-posh.jpg and b/content/posts/pwsh-resources/res-posh.jpg differ diff --git a/docker-compose.yml b/docker-compose.yml new file mode 100644 index 0000000..092d496 --- /dev/null +++ b/docker-compose.yml @@ -0,0 +1,62 @@ +version: "3.8" + +services: + next: + image: ocram85/blog:next + restart: unless-stopped + networks: + - blog + - traefik-public + deploy: + replicas: 1 + update_config: + parallelism: 1 + delay: 15s + order: start-first + labels: + - "traefik.enable=true" + #- "traefik.docker.lbswarm=true" + - "traefik.docker.network=traefik-public" + - "traefik.http.routers.next.rule=Host(`next.ocram85.com`)" + - "traefik.http.routers.next.tls=true" + - "traefik.http.services.next-srv.loadbalancer.server.port=80" + # optional health checks + - "traefik.http.services.next-srv.loadbalancer.healthCheck.path=/" + - "traefik.http.services.next-srv.loadbalancer.healthCheck.interval=10s" + - "traefik.http.services.next-srv.loadbalancer.healthCheck.timeout=3s" + - "traefik.http.services.next-srv.loadbalancer.healthCheck.port=80" + - "traefik.http.services.next-srv.loadbalancer.healthCheck.scheme=http" + + blog: + image: ocram85/blog:latest + restart: unless-stopped + networks: + - blog + - traefik-public + deploy: + replicas: 2 + update_config: + parallelism: 1 + delay: 15s + order: start-first + labels: + - "traefik.enable=true" + - "traefik.docker.network=traefik-public" + #- "traefik.docker.lbswarm=true" + - "traefik.http.routers.blog.rule=Host(`ocram85.com`)" + - "traefik.http.routers.blog.tls=true" + - "traefik.http.services.blog-srv.loadbalancer.server.port=80" + # optional health checks + - "traefik.http.services.blog-srv.loadbalancer.healthCheck.path=/" + - "traefik.http.services.blog-srv.loadbalancer.healthCheck.interval=10s" + - "traefik.http.services.blog-srv.loadbalancer.healthCheck.timeout=3s" + - "traefik.http.services.blog-srv.loadbalancer.healthCheck.port=80" + - "traefik.http.services.blog-srv.loadbalancer.healthCheck.scheme=http" + +networks: + traefik-public: + external: true + + blog: + name: blog + driver: overlay diff --git a/nginx.conf b/nginx.conf new file mode 100644 index 0000000..bf1e9bd --- /dev/null +++ b/nginx.conf @@ -0,0 +1,17 @@ +events { + worker_connections 1024; +} +http { + include mime.types; + + server { + listen 80; + root /usr/share/nignx/html; + index index.html; + error_page 404 /404.html; + + location / { + try_files $uri $uri/ =404; + } + } +}