| ## Create Dockerfile that builds container suitable for systemd build |
| ## This container runs as non-root user by default |
| |
| FROM fedora:27 |
| |
| # Demand the specification of non-root username |
| ARG DOCKER_USER |
| ARG DOCKER_USER_UID |
| ARG DOCKER_USER_GID |
| |
| # Copy the requirements into the container at /tmp |
| COPY requirements.txt /tmp/ |
| |
| # Install the requirements |
| # RUN dnf -y update FIXME |
| RUN dnf -y install $(cat '/tmp/requirements.txt') |
| # clean step to prevent cache and metadata corruption |
| RUN dnf clean all |
| RUN dnf -y builddep systemd |
| |
| # Add non-root user and chown the project dir |
| RUN groupadd -g $DOCKER_USER_GID $DOCKER_USER |
| RUN useradd --create-home --shell /bin/bash -u $DOCKER_USER_UID -g $DOCKER_USER_GID -G wheel $DOCKER_USER |
| ENV HOME /home/$DOCKER_USER |
| ENV PROJECTDIR $HOME/systemd |
| |
| # Copy content to the project directory |
| COPY . $PROJECTDIR |
| |
| # Greant user all permissions to the project dir |
| RUN chown -R $DOCKER_USER $PROJECTDIR |
| |
| # Switch to noroot user by default |
| USER $DOCKER_USER |
| |
| # Update workdir to user home dir |
| WORKDIR $PROJECTDIR |