add: docker folder for image build
All checks were successful
Deploy / Deploy (push) Successful in 6s
All checks were successful
Deploy / Deploy (push) Successful in 6s
This commit is contained in:
parent
6b194c5069
commit
b9b4d0bf8b
24
docker/Dockerfile
Normal file
24
docker/Dockerfile
Normal 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
16
docker/entrypoint.sh
Normal 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
26
docker/nginx.conf
Normal 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;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
Loading…
x
Reference in New Issue
Block a user