Build static and use nginx instead of the full hugo server

This commit is contained in:
Nikolai Rodionov 2023-02-17 15:41:11 +01:00
parent 8c825f7c84
commit 0d1209904f
4 changed files with 38 additions and 21 deletions

View File

@ -1,13 +1,17 @@
--- ---
# ----------------------------------------------
# -- Build the site and push it to the registry
# ----------------------------------------------
kind: pipeline kind: pipeline
type: kubernetes type: kubernetes
name: Build badhouseplants.net name: Build badhouseplants.net
steps: trigger:
- name: Publish the Helm chart
when:
branch: branch:
- main - main
steps:
- name: Publish the Helm chart
image: alpine/helm image: alpine/helm
environment: environment:
GITEA_TOKEN: GITEA_TOKEN:
@ -18,19 +22,13 @@ steps:
- helm repo add --username allanger --password $GITEA_TOKEN allanger-charts https://git.badhouseplants.net/api/packages/allanger/helm - helm repo add --username allanger --password $GITEA_TOKEN allanger-charts https://git.badhouseplants.net/api/packages/allanger/helm
- helm cm-push "./chart-package/$(ls chart-package)" allanger-charts - helm cm-push "./chart-package/$(ls chart-package)" allanger-charts
- name: Init git submodules - name: Init git submodules with themes
image: alpine/git image: alpine/git
when:
branch:
- main
commands: commands:
- git submodule update --init --recursive - git submodule update --init --recursive
- name: Get static content - name: Get static content
image: rclone/rclone:latest image: rclone/rclone:latest
when:
branch:
- main
environment: environment:
RCLONE_CONFIG_CONTENT: RCLONE_CONFIG_CONTENT:
from_secret: RCLONE_CONFIG_CONTENT from_secret: RCLONE_CONFIG_CONTENT
@ -40,9 +38,6 @@ steps:
- rclone copy -P badhouseplants-public:/badhouseplants-static static - rclone copy -P badhouseplants-public:/badhouseplants-static static
- name: Build and push the docker image - name: Build and push the docker image
when:
branch:
- main
image: plugins/docker image: plugins/docker
settings: settings:
registry: git.badhouseplants.net registry: git.badhouseplants.net
@ -56,12 +51,17 @@ steps:
- Get static content - Get static content
--- ---
# ----------------------------------------------
# -- Upload a newer version of my CV
# ----------------------------------------------
kind: pipeline kind: pipeline
type: kubernetes type: kubernetes
name: CV Builder name: CV Builder
when:
trigger:
branch: branch:
- main - main
steps: steps:
- name: Build the CV - name: Build the CV
image: ghcr.io/puppeteer/puppeteer image: ghcr.io/puppeteer/puppeteer

1
.gitignore vendored
View File

@ -1,3 +1,4 @@
node_modules node_modules
static static
content/cv/index.pdf content/cv/index.pdf
public

View File

@ -1,13 +1,16 @@
FROM alpine:latest AS builder FROM alpine:latest AS builder
WORKDIR /src WORKDIR /src
COPY . /src
ARG GOHUGO_LINK=https://github.com/gohugoio/hugo/releases/download/v0.110.0/hugo_0.110.0_linux-amd64.tar.gz ARG GOHUGO_LINK=https://github.com/gohugoio/hugo/releases/download/v0.110.0/hugo_0.110.0_linux-amd64.tar.gz
RUN apk update && apk add curl tar RUN apk update && apk add curl tar
RUN curl -LJO ${GOHUGO_LINK} && tar -xf hugo_0.110.0_linux-amd64.tar.gz RUN curl -LJO ${GOHUGO_LINK} && tar -xf hugo_0.110.0_linux-amd64.tar.gz
RUN chmod +x /src/hugo RUN mv /src/hugo /usr/local/bin/hugo
RUN chmod +x /usr/local/bin/hugo
RUN hugo
FROM nginx:stable-alpine
COPY --from=builder /src/public /var/www
COPY configs/nginx.conf /etc/nginx/conf.d/default.conf
EXPOSE 80
CMD [ "nginx", "-g", "daemon off;" ]
FROM alpine:latest
WORKDIR /src
COPY --from=builder /src/hugo /usr/bin/hugo
COPY . /src
ENTRYPOINT ["/usr/bin/hugo"]
CMD ["--help"]

13
configs/nginx.conf Normal file
View File

@ -0,0 +1,13 @@
server {
listen 80;
listen [::]:80;
server_name badhouseplants.com www.badhouseplants.com;
root /var/www;
index index.html; # Hugo generates HTML
location / {
try_files $uri $uri/ =404;
}
}