add: docker folder for image build
All checks were successful
Deploy / Deploy (push) Successful in 6s

This commit is contained in:
Vezpi 2025-06-02 08:02:23 +00:00
parent 6b194c5069
commit b9b4d0bf8b
3 changed files with 66 additions and 0 deletions

24
docker/Dockerfile Normal file
View File

@ -0,0 +1,24 @@
FROM nginx:alpine
ARG HUGO_VERSION
ENV HUGO_VERSION=${HUGO_VERSION}
ENV HUGO_DEST=/usr/share/nginx/html
# Install git and curl
RUN apk add --no-cache git curl
# Download Hugo
RUN curl -sSL https://github.com/gohugoio/hugo/releases/download/v${HUGO_VERSION}/hugo_extended_${HUGO_VERSION}_Linux-64bit.tar.gz \
| tar -xz -C /usr/local/bin hugo
# Add entrypoint script
COPY entrypoint.sh /entrypoint.sh
RUN chmod +x /entrypoint.sh
# Copy custom nginx config
COPY nginx.conf /etc/nginx/conf.d/default.conf
# Nginx serves on port 80
EXPOSE 80
# Set default entrypoint
ENTRYPOINT ["/entrypoint.sh"]

16
docker/entrypoint.sh Normal file
View File

@ -0,0 +1,16 @@
#!/bin/sh
set -e
# Configuration
REPO_URL="${REPO_URL:-https://git.vezpi.me/Vezpi/blog.git}"
BRANCH="${BRANCH:-preview}"
CLONE_DIR="${CLONE_DIR:-/blog}"
echo "Cloning $REPO_URL (branch: $BRANCH)..."
git clone --depth 1 --branch "$BRANCH" "$REPO_URL" "$CLONE_DIR"
echo "Building site with Hugo $HUGO_VERSION..."
hugo --source "$CLONE_DIR" --destination "$HUGO_DEST" --cleanDestinationDir
echo "Starting Nginx..."
exec nginx -g 'daemon off;'

26
docker/nginx.conf Normal file
View File

@ -0,0 +1,26 @@
map $http_accept_language $lang {
default en;
~fr fr;
}
server {
listen 80;
server_name _;
root /usr/share/nginx/html;
index index.html;
# Redirect users to their language home page
rewrite ^/$ /$lang/ redirect;
location / {
try_files $uri $uri/ =404;
}
# Custom 404 page
error_page 404 /$lang/404.html;
location = /$lang/404.html {
internal;
}
}