Skip to content

Commit 9e55ec1

Browse files
authored
chore: improve devcontainer build (ietf-tools#4241)
1 parent 4b50cfb commit 9e55ec1

4 files changed

Lines changed: 752 additions & 16 deletions

File tree

.devcontainer/devcontainer.json

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,8 +14,7 @@
1414
"features": {
1515
"docker-in-docker": {
1616
"version": "latest"
17-
},
18-
"github-cli": "latest"
17+
}
1918
},
2019

2120
// Set *default* container specific settings.json values on container create.

docker/app.Dockerfile

Lines changed: 9 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -3,38 +3,33 @@ LABEL maintainer="IETF Tools Team <tools-discuss@ietf.org>"
33

44
ENV DEBIAN_FRONTEND=noninteractive
55

6-
# Copy library scripts to execute
7-
ADD https://raw.githubusercontent.com/microsoft/vscode-dev-containers/v0.236.0/containers/python-3/.devcontainer/library-scripts/common-debian.sh /tmp/library-scripts/
8-
ADD https://raw.githubusercontent.com/microsoft/vscode-dev-containers/v0.236.0/containers/python-3/.devcontainer/library-scripts/python-debian.sh /tmp/library-scripts/
9-
ADD https://raw.githubusercontent.com/microsoft/vscode-dev-containers/v0.236.0/containers/python-3/.devcontainer/library-scripts/meta.env /tmp/library-scripts/
10-
11-
# [Option] Install zsh
12-
ARG INSTALL_ZSH="true"
13-
# [Option] Upgrade OS packages to their latest versions
14-
ARG UPGRADE_PACKAGES="true"
15-
# Install needed packages and setup non-root user. Use a separate RUN statement to add your own dependencies.
6+
# Install needed packages and setup non-root user.
167
ARG USERNAME=dev
178
ARG USER_UID=1000
189
ARG USER_GID=$USER_UID
10+
COPY docker/scripts/app-setup-debian.sh /tmp/library-scripts/docker-setup-debian.sh
11+
RUN sed -i 's/\r$//' /tmp/library-scripts/docker-setup-debian.sh && chmod +x /tmp/library-scripts/docker-setup-debian.sh
1912
RUN apt-get update && export DEBIAN_FRONTEND=noninteractive \
2013
# Remove imagemagick due to https://security-tracker.debian.org/tracker/CVE-2019-10131
2114
&& apt-get purge -y imagemagick imagemagick-6-common \
2215
# Install common packages, non-root user
23-
&& bash /tmp/library-scripts/common-debian.sh "${INSTALL_ZSH}" "${USERNAME}" "${USER_UID}" "${USER_GID}" "${UPGRADE_PACKAGES}" "true" "true"
16+
# Syntax: ./docker-setup-debian.sh [install zsh flag] [username] [user UID] [user GID] [upgrade packages flag] [install Oh My Zsh! flag] [Add non-free packages]
17+
&& bash /tmp/library-scripts/docker-setup-debian.sh "true" "${USERNAME}" "${USER_UID}" "${USER_GID}" "false" "true" "true"
2418

2519
# Setup default python tools in a venv via pipx to avoid conflicts
2620
ENV PIPX_HOME=/usr/local/py-utils \
2721
PIPX_BIN_DIR=/usr/local/py-utils/bin
2822
ENV PATH=${PATH}:${PIPX_BIN_DIR}
29-
RUN bash /tmp/library-scripts/python-debian.sh "none" "/usr/local" "${PIPX_HOME}" "${USERNAME}"
23+
COPY docker/scripts/app-setup-python.sh /tmp/library-scripts/docker-setup-python.sh
24+
RUN sed -i 's/\r$//' /tmp/library-scripts/docker-setup-python.sh && chmod +x /tmp/library-scripts/docker-setup-python.sh
25+
RUN bash /tmp/library-scripts/docker-setup-python.sh "none" "/usr/local" "${PIPX_HOME}" "${USERNAME}"
3026

3127
# Remove library scripts for final image
3228
RUN rm -rf /tmp/library-scripts
3329

3430
# Copy the startup file
3531
COPY docker/scripts/app-init.sh /docker-init.sh
36-
RUN sed -i 's/\r$//' /docker-init.sh && \
37-
chmod +x /docker-init.sh
32+
RUN sed -i 's/\r$//' /docker-init.sh && chmod +x /docker-init.sh
3833

3934
# Fix user UID / GID to match host
4035
RUN groupmod --gid $USER_GID $USERNAME \

0 commit comments

Comments
 (0)