summaryrefslogtreecommitdiffstats
path: root/travis-ci/Dockerfile
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--travis-ci/Dockerfile37
1 files changed, 37 insertions, 0 deletions
diff --git a/travis-ci/Dockerfile b/travis-ci/Dockerfile
new file mode 100644
index 0000000..daf0ea9
--- /dev/null
+++ b/travis-ci/Dockerfile
@@ -0,0 +1,37 @@
+## 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