aboutsummaryrefslogtreecommitdiff
path: root/.devcontainer/Dockerfile
blob: bd84abc0f83936319d4a2a734b7bc2ee8f12bca7 (plain) (blame)
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
# MongoDB doesn't provide devtools for Debian, so we adapt Ubuntu to use nodejs and MongoDB
FROM ubuntu:bionic

# Install needed packages, yarn, nvm and setup non-root user
RUN groupadd --gid 1000 node \
  && useradd --uid 1000 --gid node --shell /bin/bash --create-home node
ARG INSTALL_ZSH=false
COPY node.sh ./
RUN chmod +x ./node.sh
RUN ./node.sh $INSTALL_ZSH

# Install MongoDB command line tools
ARG MONGO_TOOLS_VERSION=4.2
RUN curl -sSL "https://www.mongodb.org/static/pgp/server-${MONGO_TOOLS_VERSION}.asc" | (OUT=$(apt-key add - 2>&1) || echo $OUT) \
    && echo "deb http://repo.mongodb.org/apt/ubuntu bionic/mongodb-org/${MONGO_TOOLS_VERSION} multiverse" | tee /etc/apt/sources.list.d/mongodb-org-${MONGO_TOOLS_VERSION}.list \
    && apt-get update && export DEBIAN_FRONTEND=noninteractive \
    && apt-get install -y mongodb-org-tools mongodb-org-shell \
    && apt-get clean -y && rm -rf /var/lib/apt/lists/*

# Update args in docker-compose.yaml to set the UID/GID of the "node" user
ARG USER_UID=1000
ARG USER_GID=$USER_UID
RUN if [ "$USER_GID" != "1000" ] || [ "$USER_UID" != "1000" ]; then groupmod --gid $USER_GID node && usermod --uid $USER_UID --gid $USER_GID node; fi

# create host directory for reports and assign it to a volume
ARG HOST_DIR=/dist
RUN mkdir -p $HOST_DIR
RUN chown $USER_UID:$USER_GID $HOST_DIR
VOLUME [ "${HOST_DIR}" ]
ENV HOST_DIR=${HOST_DIR}

# Copy in starter data
COPY data $HOST_DIR