Docker: update Dockerfile and description

This commit is contained in:
Christian Poessinger 2019-04-20 14:16:14 +02:00
parent c208ed8d03
commit 0a0e3c5ebd
4 changed files with 75 additions and 38 deletions

View File

@ -1,27 +0,0 @@
# Must be run with --privileged flag
# Recommended to run the container with a volume mapped
# in order to easy exprort images built to "external" world
FROM debian:stretch
RUN apt-get update && DEBIAN_FRONTEND=noninteractive apt-get install -y \
vim \
git \
mc \
make \
python3-sphinx \
python-sphinx-rtd-theme \
latexmk \
texlive-latex-recommended \
texlive-fonts-recommended \
texlive-latex-extra sudo \
&& rm -rf /var/lib/apt/lists/*
RUN groupadd -g 1000 debian
RUN useradd -d /home/debian -ms /bin/bash -g 1000 -u 1000 debian && \
echo "debian:debian" | chpasswd && \
adduser debian sudo
RUN echo '%sudo ALL=(ALL) NOPASSWD:ALL' >> /etc/sudoers
USER debian
WORKDIR ~

View File

@ -20,22 +20,18 @@ Required Debian Packages:
## Docker
## Create Container
Using our [Dockerfile](docker/Dockerfile) you create your own Docker container
that is used to build a VyOS documentation.
## Setup
```bash
$ docker build -t vyos-docu - < Dockerfile
$ docker build -t vyos-docu docker
```
### Build Documentation
### Build
Linux
```bash
$ docker run -v `pwd`:`pwd` -w `pwd`/docs -i -t --rm vyos-docu bash
$ docker run --rm -it -v "$(pwd)":/vyos -w /vyos/docs -e GOSU_UID=$(id -u) -e GOSU_GID=$(id -g) vyos-docu make html
```
Windows PowerShell
```powershell
docker run -v "$($pwd.path):/vyos" -w "/vyos/docs" -i -t --rm vyos-docu bash
```
Inside the container you can then build the documentation as stated above.

36
docker/Dockerfile Normal file
View File

@ -0,0 +1,36 @@
# Must be run with --privileged flag
# Recommended to run the container with a volume mapped
# in order to easy exprort images built to "external" world
FROM debian:stretch
LABEL authors="VyOS Maintainers <maintainers@vyos.io>"
ENV DEBIAN_FRONTEND noninteractive
# Standard shell should be bash not dash
RUN echo "dash dash/sh boolean false" | debconf-set-selections && \
dpkg-reconfigure dash
RUN apt-get update && apt-get install -y \
vim \
git \
mc \
make \
python3-sphinx \
python-sphinx-rtd-theme \
latexmk \
texlive-latex-recommended \
texlive-fonts-recommended \
texlive-latex-extra \
sudo \
gosu
# Cleanup
RUN rm -rf /var/lib/apt/lists/*
# Allow password-less 'sudo' for all users in group 'sudo'
RUN sed "s/^%sudo.*/%sudo\tALL=(ALL) NOPASSWD:ALL/g" -i /etc/sudoers && \
chmod a+s /usr/sbin/useradd /usr/sbin/groupadd /usr/sbin/gosu /usr/sbin/usermod
COPY entrypoint.sh /usr/local/bin/entrypoint.sh
ENTRYPOINT ["/usr/local/bin/entrypoint.sh"]

32
docker/entrypoint.sh Executable file
View File

@ -0,0 +1,32 @@
#!/bin/bash
set -e
USER_NAME="vyos_bld"
NEW_UID=$(stat -c "%u" .)
NEW_GID=$(stat -c "%g" .)
# Change effective UID to the one specified via "-e GOSU_UID=`id -u $USER`"
if [ -n "$GOSU_UID" ]; then
NEW_UID=$GOSU_UID
fi
# Change effective UID to the one specified via "-e GOSU_GID=`id -g $USER`"
if [ -n "$GOSU_GID" ]; then
NEW_GID=$GOSU_GID
fi
# Notify user about selected UID/GID
echo "Current UID/GID: $NEW_UID/$NEW_GID"
# Create UNIX group on the fly if it does not exist
if ! grep -q $NEW_GID /etc/group; then
groupadd --gid $NEW_GID $USER_NAME
fi
useradd --shell /bin/bash --uid $NEW_UID --gid $NEW_GID --non-unique --create-home $USER_NAME
usermod --append --groups sudo $USER_NAME
sudo chown $NEW_UID:$NEW_GID /home/$USER_NAME
export HOME=/home/$USER_NAME
# Execute process
exec /usr/sbin/gosu $USER_NAME "$@"