Today I moved my [gohugo.io](https://gohugo.io/) blog from a lxd hosting to our Kubernetes -dev Cluster at the [Webmeisterei](https://webmeisterei.com).
We have our own [Gitlab](https://git.webmeisterei.com) so and we run our own registry on the -dev Cluster, I thought it will be easy to do so but it wasn't that easy and I lost about 8 Hours until I found out that had to open the required Ports on the Firewall :).
I use a [multi-stage build](https://docs.docker.com/develop/develop-images/multistage-build/) to generate the page in a container and serve a copy of the page after in a nginx container.
See this [Dockerfile](https://git.webmeisterei.com/jochum/rene.jochums.at/blob/master/Dockerfile)
```bash
# Build public with hugo
FROM jguyomard/hugo-builder:latest
COPY . /build
WORKDIR /build
RUN hugo -b https://rene.jochums.at -v -t persona
# Copy to a nginx container
FROM nginx:1.17-alpine
COPY docker/nginx/nginx.conf /etc/nginx/
COPY docker/nginx/default.conf /etc/nginx/conf.d/
# This is important "COPY --from=0" line where --from=0 means copy from the first container.
With lots of try-and-error testing I got this [deployment.yaml](https://git.webmeisterei.com/jochum/rene.jochums.at/blob/master/deployment.yaml) together.
Its important that you have to add the registry to your Project first, in this case **registry.dev.wmk8s.com**.
#### And the pipeline itself
The last step after the container and the deployment was to create a .rancher-pipeline.yml in my repo, I used Rancher -> Cluster dev -> Project -> Workloads -> Pipelines to generate it.