|
1 | 1 | FROM ubuntu:24.04 |
2 | 2 |
|
| 3 | +ARG TARGETARCH |
| 4 | +ENV TARGETARCH=${TARGETARCH} |
| 5 | + |
| 6 | +ARG ASDF_VERSION |
| 7 | +COPY .tool-versions.asdf /tmp/.tool-versions.asdf |
| 8 | + |
3 | 9 | ARG VERSION |
4 | 10 |
|
5 | 11 | RUN apt-get update \ |
6 | 12 | && export DEBIAN_FRONTEND=noninteractive \ |
7 | | - && apt-get -y upgrade |
8 | | - |
9 | | -RUN export DEBIAN_FRONTEND=noninteractive \ |
| 13 | + && apt-get -y upgrade \ |
10 | 14 | && apt-get -y install --no-install-recommends ca-certificates curl git jq make unzip wget \ |
11 | 15 | && apt-get clean |
12 | 16 |
|
13 | 17 | # install aws stuff |
14 | | -ADD https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip /tmp/awscliv2.zip |
15 | | -RUN unzip /tmp/awscliv2.zip -d /tmp/aws-cli && \ |
| 18 | +# Download correct AWS CLI for arch |
| 19 | +RUN if [ "$TARGETARCH" = "arm64" ] || [ "$TARGETARCH" == "aarch64" ]; then \ |
| 20 | + wget -O /tmp/awscliv2.zip "https://awscli.amazonaws.com/awscli-exe-linux-aarch64.zip"; \ |
| 21 | + else \ |
| 22 | + wget -O /tmp/awscliv2.zip "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip"; \ |
| 23 | + fi && \ |
| 24 | + unzip /tmp/awscliv2.zip -d /tmp/aws-cli && \ |
16 | 25 | /tmp/aws-cli/aws/install && \ |
17 | | - rm tmp/awscliv2.zip && \ |
18 | | - rm -rf /tmp/aws-cli |
| 26 | + rm /tmp/awscliv2.zip && rm -rf /tmp/aws-cli |
| 27 | + |
| 28 | +# Install ASDF |
| 29 | +RUN ASDF_VERSION=$(awk '!/^#/ && NF {print $1; exit}' /tmp/.tool-versions.asdf) && \ |
| 30 | + if [ "$TARGETARCH" = "arm64" ] || [ "$TARGETARCH" = "aarch64" ]; then \ |
| 31 | + 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; \ |
| 32 | + else \ |
| 33 | + 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; \ |
| 34 | + fi && \ |
| 35 | + tar -xvzf /tmp/asdf.tar.gz && \ |
| 36 | + mv asdf /usr/bin |
19 | 37 |
|
20 | 38 | RUN useradd -ms /bin/bash cdkuser |
21 | 39 | RUN chown -R cdkuser /home/cdkuser |
22 | 40 | WORKDIR /home/cdkuser |
23 | 41 | USER cdkuser |
24 | | -# Install ASDF |
25 | | -RUN git clone https://github.com/asdf-vm/asdf.git /home/cdkuser/.asdf --branch v0.14.1; \ |
26 | | - echo '. /home/cdkuser/.asdf/asdf.sh' >> ~/.bashrc; \ |
27 | | - echo '. /home/cdkuser/.asdf/completions/asdf.bash' >> ~/.bashrc; \ |
28 | | - echo 'PATH="$PATH:/home/cdkuser/.asdf/bin/"' >> ~/.bashrc; |
29 | 42 |
|
30 | | -ENV PATH="$PATH:/home/cdkuser/.asdf/bin/:/home/cdkuser/node_modules/.bin" |
| 43 | +ENV PATH="$PATH:/home/cdkuser/.asdf/shims/:/home/cdkuser/node_modules/.bin" |
31 | 44 |
|
32 | 45 | # Install ASDF plugins |
33 | 46 | RUN asdf plugin add nodejs https://github.com/asdf-vm/asdf-nodejs.git |
34 | 47 | # install some common node versions that are used in builds to speed things up |
35 | | -RUN asdf install nodejs 20.19.1; \ |
36 | | - asdf install nodejs 23.9.0 |
37 | | -# update npm |
38 | | -RUN export ASDF_DIR=/home/cdkuser/.asdf && \ |
39 | | - . /home/cdkuser/.asdf/asdf.sh && \ |
40 | | - asdf shell nodejs 20.19.1 && \ |
41 | | - cd ~/.asdf/installs/nodejs/20.19.1/lib && npm update npm |
| 48 | +RUN asdf install nodejs 22.20.0; |
42 | 49 |
|
43 | 50 | # copy files needed for deployment |
44 | 51 | COPY --chown=cdkuser docker/entrypoint.sh /home/cdkuser/ |
|
0 commit comments