Compare commits

...

3 commits

Author SHA1 Message Date
Luc
8d048e5094 README.md: update
Added building with Podman section.
2025-07-20 20:00:37 +02:00
Luc
bc481c8586 multilang: update
Copied the changes in the monolang version to the multilang version.
2025-07-20 19:59:57 +02:00
Luc
0d93a954ee monolang/mkdocs-git: update
Added activation of python venv and comments.
2025-07-20 19:59:02 +02:00
4 changed files with 53 additions and 10 deletions

View file

@ -4,4 +4,10 @@ The build files of an nginx:alpine mkdocs container that fetches from git.
## Building with Podman
The containerfile of either `mkdocs-git` or `mkdocs-git-multilang` can be build with [podman](https://podman.io/) by executing the following in the working directory (either `mkdocs-git/monolang` or `mkdocs-git/multilang`):
``` shell-session
sh$ podman build --network=pasta -f mkdocs-git.containerfile -t mkdocs-git:latest
```
An mkdocs-git container may then be deployed by specifying the git repository URL in the `GIT_REPO_URL` environment variable and additionally for the multilang version the list of languages in the `WIKI_LANG` environment variable.

View file

@ -1,6 +1,18 @@
#!/bin/sh
# Redirect standard error to standard output
exec 2>&1
# Activate the Python virtual environment
source ${VIRTUAL_ENV}/bin/activate
# Check if the /mkdocs/repo directory exists
# If it does not exist, clone the repository from the specified GIT_REPO_URL
find /mkdocs/repo || git clone $GIT_REPO_URL /mkdocs/repo
# Change directory to the cloned repository and pull the latest changes
cd /mkdocs/repo && git pull
# Build mkdocs using the configuration file located at /mkdocs/repo/mkdocs.yml
# The output will be directed to /usr/share/nginx/html
exec mkdocs build -f /mkdocs/repo/mkdocs.yml -d /usr/share/nginx/html

View file

@ -1,9 +1,20 @@
#!/bin/sh
# Redirect standard error to standard output
exec 2>&1
# Activate the Python virtual environment
source ${VIRTUAL_ENV}/bin/activate
# Check if the /mkdocs/repo directory exists
# If it does not exist, clone the repository from the specified GIT_REPO_URL
find /mkdocs/repo || git clone $GIT_REPO_URL /mkdocs/repo
# Change directory to the cloned repository and pull the latest changes
cd /mkdocs/repo && git pull
# Build mkdocs using the configuration file of each lang
# The output will be directed the subsequent lang directory in /usr/share/nginx/html
for lang in $WIKI_LANG
do
mkdocs build -f /mkdocs/repo/config/${lang}/mkdocs.yml -d /usr/share/nginx/html/${lang}

View file

@ -1,25 +1,39 @@
FROM nginx:alpine
# Set environment variables
ENV PORT="80"
COPY default.conf.env /etc/nginx/conf.d/default.conf.env
ENV VIRTUAL_ENV="/mkdocs"
ENV PATH="$VIRTUAL_ENV/bin:$PATH"
RUN apk add envsubst \
&& touch /docker-entrypoint.d/port.sh \
&& echo "exec envsubst < /etc/nginx/conf.d/default.conf.env > /etc/nginx/conf.d/default.conf && nginx -s reload" > /docker-entrypoint.d/port.sh \
&& chmod 776 /docker-entrypoint.d/port.sh
RUN apk add git \
&& apk add mkdocs \
&& apk add mkdocs-material \
&& apk add py3-regex
# Install necessary packages
RUN apk add --no-cache git python3 envsubst
# Create work directory
RUN mkdir /mkdocs
WORKDIR /mkdocs
# Create virtual environment
RUN python -m venv $VIRTUAL_ENV
# Install necessary packages in virtual environment
RUN pip install --no-cache-dir mkdocs mkdocs-material
# Configure nginx environment
COPY default.conf.env /etc/nginx/conf.d/default.conf.env
# Configure entrypoints
RUN touch /docker-entrypoint.d/port.sh \
&& echo "exec envsubst < /etc/nginx/conf.d/default.conf.env > /etc/nginx/conf.d/default.conf && nginx -s reload" > /docker-entrypoint.d/port.sh \
&& chmod 776 /docker-entrypoint.d/port.sh
# Configure cron
COPY root /etc/crontabs/root
# Configure mkdocs-git-multilang
COPY mkdocs-git-multilang /bin/mkdocs-git-multilang
RUN chmod 744 /bin/mkdocs-git-multilang
# Configure cron entrypoints
RUN touch /docker-entrypoint.d/cron.sh \
&& echo "exec crond" > /docker-entrypoint.d/cron.sh \
&& chmod 776 /docker-entrypoint.d/cron.sh