# use the classic alpine image
#FROM alpine as Builder
FROM golang:1.22.5-alpine as Builder
ARG GITLAB_TOKEN

# install curl and git
# RUN apk add --update curl git
RUN apk add git

# download and unnzip the hugo binary then place it in /usr/local/bin
#RUN curl -L https://github.com/gohugoio/hugo/releases/download/v0.121.1/hugo_0.121.1_linux-arm64.tar.gz > hugo.tar.gz && tar -zxf hugo.tar.gz && mv hugo /usr/local/bin
RUN CGO_ENABLED=1 go install -tags extended github.com/gohugoio/hugo@v0.128.2

# clone the blog repository as well as the theme submodule
# RUN git clone --recurse-submodules https://oauth2:$GITLAB_TOKEN@gitlab.com/AHMZA/blog.git
RUN git clone https://oauth2:$GITLAB_TOKEN@gitlab.com/AHMZA/blog.git

# set blog (the folder we just cloned) as the current DIR
WORKDIR blog

# run hugo --minify to generate static files
RUN hugo --minify --gc


# Nginx image is as basic as we can get without introducing further complexity
FROM nginx

# copy the nginx.conf file
COPY --from=Builder /blog/nginx.conf /etc/nginx/nginx.conf

# copy the static files
COPY --from=Builder /blog/public/ /usr/share/nginx/html

# Tell the image to expose port 80 for HTTP, SSL provided by reverse proxy.
EXPOSE 80
