File: Dockerfile

package info (click to toggle)
sphinx-needs 5.1.0%2Bdfsg-6
  • links: PTS, VCS
  • area: main
  • in suites: sid
  • size: 12,108 kB
  • sloc: python: 21,148; javascript: 187; makefile: 95; sh: 29; xml: 10
file content (64 lines) | stat: -rw-r--r-- 1,985 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
# Dockerfile for Sphinx-Needs
# syntax = docker/dockerfile:1.2
ARG BASE_IMAGE=sphinxdoc/sphinx:latest
FROM $BASE_IMAGE
LABEL maintainer="useblocks <https://useblocks.com/>"

ARG DOCKER_USERNAME=dockeruser
ARG DOCKER_USER_ID=1000
ARG DOCKER_GROUP_ID=$DOCKER_USER_ID
ARG NEEDS_VERSION

# To prevent interactive shells
ARG DEBIAN_FRONTEND=noninteractive

# Install apt & make
RUN \
  apt-get update && \
  apt-get upgrade -y && \
  apt-get install -y --no-install-recommends sudo

# Create user
RUN groupadd -g ${DOCKER_GROUP_ID} ${DOCKER_USERNAME} &&\
    useradd -l -u ${DOCKER_USER_ID} -g ${DOCKER_USERNAME} ${DOCKER_USERNAME} &&\
    install -d -m 0755 -o ${DOCKER_USERNAME} -g ${DOCKER_USERNAME} /home/${DOCKER_USERNAME} &&\
    echo $DOCKER_USERNAME ALL=\(root\) NOPASSWD:ALL > /etc/sudoers.d/$DOCKER_USERNAME &&\
    chmod 0440 /etc/sudoers.d/$DOCKER_USERNAME &&\    
    chown -R ${DOCKER_USERNAME} /home/${DOCKER_USERNAME}

# Install some basic tooling
RUN apt-get -y --no-install-recommends install \
  wget \
  git

# Install PlantUML dependencies
RUN apt-get -y install \
  default-jre

# Install PlantUML
RUN wget -c https://netcologne.dl.sourceforge.net/project/plantuml/plantuml.jar -O /tmp/plantuml.jar && \
    mkdir -p /usr/share/plantuml && \
    mv /tmp/plantuml.jar /usr/share/plantuml/plantuml.jar

# Install needed sphinx components
RUN pip3 install --no-cache-dir \
  sphinxcontrib-plantuml 

# Install Sphinx-Needs
RUN \
    if [ -n "$NEEDS_VERSION" ] && [ "$NEEDS_VERSION" = "pre-release" ]; then \
      pip3 install --no-cache-dir "sphinx-needs[plotting] @ git+https://github.com/useblocks/sphinx-needs"; \
    elif [ -n "$NEEDS_VERSION" ]; then \
      pip3 install --no-cache-dir "sphinx-needs[plotting] @ git+https://github.com/useblocks/sphinx-needs@$NEEDS_VERSION"; \
    else \
      pip3 install --no-cache-dir sphinx-needs[plotting]; \
    fi

## Clean up
RUN apt-get remove -y wget \
git

WORKDIR /sphinxneeds

 # Start as user
USER ${DOCKER_USERNAME}