|
1 | | -FROM mcr.microsoft.com/devcontainers/base:ubuntu |
2 | | - |
3 | | -# provide DOCKER_GID via build args if you need to force group id to match host |
4 | | -ARG DOCKER_GID |
5 | | -ARG TARGETARCH |
6 | | -ENV TARGETARCH=${TARGETARCH} |
7 | | - |
8 | | -ARG ASDF_VERSION |
9 | | -COPY .tool-versions.asdf /tmp/.tool-versions.asdf |
10 | | - |
11 | | -RUN if [ "$TARGETARCH" = "arm64" ] || [ "$TARGETARCH" = "aarch64" ]; then dpkg --add-architecture arm64; fi |
12 | | - |
13 | | -# Anticipate and resolve potential permission issues with apt |
14 | | -RUN mkdir -p /tmp && chmod 1777 /tmp |
15 | | -# Install system dependencies |
16 | | -RUN apt-get update \ |
17 | | - && export DEBIAN_FRONTEND=noninteractive \ |
18 | | - && apt-get -y dist-upgrade \ |
19 | | - && apt-get -y install --no-install-recommends htop vim curl git build-essential \ |
20 | | - libffi-dev libssl-dev libxml2-dev libxslt1-dev libjpeg8-dev libbz2-dev \ |
21 | | - zlib1g-dev unixodbc unixodbc-dev libsecret-1-0 libsecret-1-dev libsqlite3-dev \ |
22 | | - jq apt-transport-https ca-certificates gnupg-agent \ |
23 | | - software-properties-common bash-completion python3-pip make \ |
24 | | - libreadline-dev libsqlite3-dev wget llvm libncurses5-dev libncursesw5-dev \ |
25 | | - xz-utils tk-dev liblzma-dev netcat-traditional libyaml-dev |
26 | | - |
27 | | -# Install aws stuff |
28 | | -RUN if [ "$TARGETARCH" = "arm64" ] || [ "$TARGETARCH" = "aarch64" ]; then \ |
29 | | - wget -O /tmp/awscliv2.zip "https://awscli.amazonaws.com/awscli-exe-linux-aarch64.zip"; \ |
30 | | - else \ |
31 | | - wget -O /tmp/awscliv2.zip "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip"; \ |
32 | | - fi && \ |
33 | | - unzip /tmp/awscliv2.zip -d /tmp/aws-cli && \ |
34 | | - /tmp/aws-cli/aws/install && \ |
35 | | - rm /tmp/awscliv2.zip && rm -rf /tmp/aws-cli |
36 | | - |
37 | | -RUN if [ "$TARGETARCH" = "arm64" ] || [ "$TARGETARCH" = "aarch64" ]; then \ |
38 | | - wget -O /tmp/aws-sam-cli.zip "https://github.com/aws/aws-sam-cli/releases/latest/download/aws-sam-cli-linux-arm64.zip"; \ |
39 | | - else \ |
40 | | - wget -O /tmp/aws-sam-cli.zip "https://github.com/aws/aws-sam-cli/releases/latest/download/aws-sam-cli-linux-x86_64.zip"; \ |
41 | | - fi && \ |
42 | | - unzip /tmp/aws-sam-cli.zip -d /tmp/aws-sam-cli && \ |
43 | | - /tmp/aws-sam-cli/install && \ |
44 | | - rm /tmp/aws-sam-cli.zip && rm -rf /tmp/aws-sam-cli |
45 | | - |
46 | | -# Install ASDF |
47 | | -RUN ASDF_VERSION=$(awk '!/^#/ && NF {print $1; exit}' /tmp/.tool-versions.asdf) && \ |
48 | | - if [ "$TARGETARCH" = "arm64" ] || [ "$TARGETARCH" == "aarch64" ]; then \ |
49 | | - wget -O /tmp/asdf.tar.gz "https://github.com/asdf-vm/asdf/releases/download/v${ASDF_VERSION}/asdf-v${ASDF_VERSION}-linux-arm64.tar.gz"; \ |
50 | | - else \ |
51 | | - wget -O /tmp/asdf.tar.gz "https://github.com/asdf-vm/asdf/releases/download/v${ASDF_VERSION}/asdf-v${ASDF_VERSION}-linux-amd64.tar.gz"; \ |
52 | | - fi && \ |
53 | | - tar -xzf /tmp/asdf.tar.gz -C /tmp && \ |
54 | | - mkdir -p /usr/bin && \ |
55 | | - mv /tmp/asdf /usr/bin/asdf && \ |
56 | | - chmod +x /usr/bin/asdf && \ |
57 | | - rm -rf /tmp/asdf.tar.gz |
| 1 | +ARG IMAGE_NAME=node_24_python_3_14 |
| 2 | +ARG IMAGE_VERSION=latest |
| 3 | +FROM ghcr.io/nhsdigital/eps-devcontainers/${IMAGE_NAME}:${IMAGE_VERSION} |
58 | 4 |
|
| 5 | +USER root |
59 | 6 | # specify DOCKER_GID to force container docker group id to match host |
60 | 7 | RUN if [ -n "${DOCKER_GID}" ]; then \ |
61 | | - if ! getent group docker; then \ |
62 | | - groupadd -g ${DOCKER_GID} docker; \ |
63 | | - else \ |
64 | | - groupmod -g ${DOCKER_GID} docker; \ |
65 | | - fi && \ |
66 | | - usermod -aG docker vscode; \ |
| 8 | + if ! getent group docker; then \ |
| 9 | + groupadd -g ${DOCKER_GID} docker; \ |
| 10 | + else \ |
| 11 | + groupmod -g ${DOCKER_GID} docker; \ |
| 12 | + fi && \ |
| 13 | + usermod -aG docker vscode; \ |
67 | 14 | fi |
68 | | - |
69 | | -USER vscode |
70 | | - |
71 | | -ENV PATH="/home/vscode/.asdf/shims/:$PATH" |
72 | | -RUN \ |
73 | | - echo 'PATH="/home/vscode/.asdf/shims/:$PATH"' >> ~/.bashrc; \ |
74 | | - echo '# Install Ruby Gems to ~/gems' >> ~/.bashrc; \ |
75 | | - echo 'export GEM_HOME="$HOME/gems"' >> ~/.bashrc; \ |
76 | | - echo 'export PATH="$HOME/gems/bin:$PATH"' >> ~/.bashrc; |
77 | | - |
78 | | -ENV PATH="$PATH:/workspaces/eps-assist-me/node_modules/.bin" |
79 | | - |
80 | | -# Install ASDF plugins |
81 | | -RUN asdf plugin add python && \ |
82 | | - asdf plugin add poetry https://github.com/asdf-community/asdf-poetry.git && \ |
83 | | - asdf plugin add nodejs https://github.com/asdf-vm/asdf-nodejs.git && \ |
84 | | - asdf plugin add shellcheck https://github.com/luizm/asdf-shellcheck.git && \ |
85 | | - asdf plugin add direnv && \ |
86 | | - asdf plugin add actionlint && \ |
87 | | - asdf plugin add ruby https://github.com/asdf-vm/asdf-ruby.git |
88 | | - |
89 | | -WORKDIR /workspaces/eps-assist-me |
90 | | -ADD .tool-versions /workspaces/eps-assist-me/.tool-versions |
91 | | -ADD .tool-versions /home/vscode/.tool-versions |
92 | | - |
93 | | -# install python before poetry to ensure correct python version is used |
94 | | -RUN asdf install python && \ |
95 | | - asdf install |
| 15 | + |
0 commit comments