Skip to content

Commit 1ff4884

Browse files
committed
build base image
1 parent 2d98a0c commit 1ff4884

File tree

8 files changed

+35
-163
lines changed

8 files changed

+35
-163
lines changed

.github/workflows/build_multi_arch_image.yml

Lines changed: 19 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -63,9 +63,9 @@ jobs:
6363
run: >
6464
make build-base-image
6565
66-
docker tag ghcr.io/nhsdigital/eps-devcontainer-base:latest "ghcr.io/nhsdigital/eps-devcontainers:${DOCKER_TAG}-${ARCHITECTURE}"
66+
docker tag ghcr.io/nhsdigital/eps-devcontainer-base:latest "ghcr.io/nhsdigital/eps-devcontainers/base:${DOCKER_TAG}-${ARCHITECTURE}"
6767
68-
docker save "ghcr.io/nhsdigital/eps-devcontainers:${DOCKER_TAG}-${ARCHITECTURE}" -o "eps-devcontainer-base-${DOCKER_TAG}-${ARCHITECTURE}.img"
68+
docker save "ghcr.io/nhsdigital/eps-devcontainers/base:${DOCKER_TAG}-${ARCHITECTURE}" -o "eps-devcontainer-base-${DOCKER_TAG}-${ARCHITECTURE}.img"
6969
env:
7070
GH_TOKEN: ${{ steps.generate-token.outputs.token }}
7171
ARCHITECTURE: '${{ matrix.arch }}'
@@ -81,7 +81,7 @@ jobs:
8181
uses: aquasecurity/trivy-action@b6643a29fecd7f34b3597bc6acb0a98b03d33ff8
8282
with:
8383
scan-type: "image"
84-
image-ref: "ghcr.io/nhsdigital/eps-devcontainers:${{ inputs.docker_tag }}-${{ matrix.arch }}"
84+
image-ref: "ghcr.io/nhsdigital/eps-devcontainers/base:${{ inputs.docker_tag }}-${{ matrix.arch }}"
8585
severity: "CRITICAL,HIGH"
8686
scanners: "vuln"
8787
vuln-type: "os,library"
@@ -99,7 +99,7 @@ jobs:
9999
uses: aquasecurity/trivy-action@b6643a29fecd7f34b3597bc6acb0a98b03d33ff8
100100
with:
101101
scan-type: "image"
102-
image-ref: "ghcr.io/nhsdigital/eps-devcontainers:${{ inputs.docker_tag }}-${{ matrix.arch }}"
102+
image-ref: "ghcr.io/nhsdigital/eps-devcontainers/base:${{ inputs.docker_tag }}-${{ matrix.arch }}"
103103
severity: "CRITICAL,HIGH"
104104
scanners: "vuln"
105105
vuln-type: "os,library"
@@ -111,7 +111,7 @@ jobs:
111111
- name: Show docker vulnerability output
112112
if: always()
113113
run: |
114-
echo "Scan output for ghcr.io/nhsdigital/eps-devcontainers:${DOCKER_TAG}-${ARCHITECTURE}"
114+
echo "Scan output for ghcr.io/nhsdigital/eps-devcontainers/base:${DOCKER_TAG}-${ARCHITECTURE}"
115115
if [ -f scan_results_docker.txt ]; then
116116
cat scan_results_docker.txt
117117
fi
@@ -166,25 +166,25 @@ jobs:
166166
docker load -i "eps-devcontainer-base-${DOCKER_TAG}-arm64.img"
167167
168168
echo "Tagging latest images"
169-
docker tag "ghcr.io/nhsdigital/eps-devcontainers:${DOCKER_TAG}-amd64" "ghcr.io/nhsdigital/eps-devcontainers:latest-amd64"
170-
docker tag "ghcr.io/nhsdigital/eps-devcontainers:${DOCKER_TAG}-arm64" "ghcr.io/nhsdigital/eps-devcontainers:latest-arm64"
169+
docker tag "ghcr.io/nhsdigital/eps-devcontainers/base:${DOCKER_TAG}-amd64" "ghcr.io/nhsdigital/eps-devcontainers/base:latest-amd64"
170+
docker tag "ghcr.io/nhsdigital/eps-devcontainers/base:${DOCKER_TAG}-arm64" "ghcr.io/nhsdigital/eps-devcontainers/base:latest-arm64"
171171
172172
echo "pushing images"
173-
docker push "ghcr.io/nhsdigital/eps-devcontainers:${DOCKER_TAG}-amd64"
174-
docker push "ghcr.io/nhsdigital/eps-devcontainers:${DOCKER_TAG}-arm64"
175-
docker push ghcr.io/nhsdigital/eps-devcontainers:latest-amd64
176-
docker push ghcr.io/nhsdigital/eps-devcontainers:latest-arm64
173+
docker push "ghcr.io/nhsdigital/eps-devcontainers/base:${DOCKER_TAG}-amd64"
174+
docker push "ghcr.io/nhsdigital/eps-devcontainers/base:${DOCKER_TAG}-arm64"
175+
docker push "ghcr.io/nhsdigital/eps-devcontainers/base:latest-amd64"
176+
docker push "ghcr.io/nhsdigital/eps-devcontainers/base:latest-arm64"
177177
178178
echo "creating manifest"
179-
docker manifest create "ghcr.io/nhsdigital/eps-devcontainers:${DOCKER_TAG}" \
180-
--amend "ghcr.io/nhsdigital/eps-devcontainers:${DOCKER_TAG}-amd64" \
181-
--amend "ghcr.io/nhsdigital/eps-devcontainers:${DOCKER_TAG}-arm64"
182-
docker manifest create "ghcr.io/nhsdigital/eps-devcontainers:latest" \
183-
--amend "ghcr.io/nhsdigital/eps-devcontainers:latest-amd64" \
184-
--amend "ghcr.io/nhsdigital/eps-devcontainers:latest-arm64"
179+
docker manifest create "ghcr.io/nhsdigital/eps-devcontainers/base:${DOCKER_TAG}" \
180+
--amend "ghcr.io/nhsdigital/eps-devcontainers/base:${DOCKER_TAG}-amd64" \
181+
--amend "ghcr.io/nhsdigital/eps-devcontainers/base:${DOCKER_TAG}-arm64"
182+
docker manifest create "ghcr.io/nhsdigital/eps-devcontainers/base:latest" \
183+
--amend "ghcr.io/nhsdigital/eps-devcontainers/base:latest-amd64" \
184+
--amend "ghcr.io/nhsdigital/eps-devcontainers/base:latest-arm64"
185185
186186
echo "pushing manifest"
187-
docker manifest push "ghcr.io/nhsdigital/eps-devcontainers:${DOCKER_TAG}"
188-
docker manifest push "ghcr.io/nhsdigital/eps-devcontainers:latest"
187+
docker manifest push "ghcr.io/nhsdigital/eps-devcontainers/base:${DOCKER_TAG}"
188+
docker manifest push "ghcr.io/nhsdigital/eps-devcontainers/base:latest"
189189
env:
190190
DOCKER_TAG: ${{ inputs.docker_tag }}

Makefile

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -15,17 +15,14 @@ install-hooks: install-python
1515
poetry run pre-commit install --install-hooks --overwrite
1616

1717
install-hooks:
18-
build-base-image: generate-language-version-files
18+
build-base-image:
1919
CONTAINER_NAME=$(CONTAINER_NAME) \
2020
npx devcontainer build \
2121
--workspace-folder ./src/base/ \
2222
--push false \
2323
--platform linux/${ARCHITECTURE} \
2424
--image-name "${IMAGE_NAME}"
2525

26-
generate-language-version-files:
27-
./scripts/generate_language_version_files.sh
28-
2926
scan-base-image:
3027
trivy image \
3128
--severity HIGH,CRITICAL \

scripts/generate_language_version_files.sh

Lines changed: 0 additions & 98 deletions
This file was deleted.

src/base/.devcontainer/.tool-versions

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,4 +2,4 @@ shellcheck 0.11.0
22
direnv 2.37.1
33
actionlint 1.7.10
44
ruby 3.3.0
5-
trivy 0.68.2
5+
trivy 0.69.1

src/base/.devcontainer/Dockerfile

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -20,10 +20,5 @@ ENV PATH="/home/vscode/.asdf/shims/:$PATH"
2020
WORKDIR ${SCRIPTS_DIR}/${CONTAINER_NAME}
2121
COPY .tool-versions.asdf /home/vscode/.tool-versions.asdf
2222
COPY .tool-versions /home/vscode/.tool-versions
23-
COPY language_versions/nodejs-versions.txt /tmp/nodejs-versions.txt
24-
COPY language_versions/python-versions.txt /tmp/python-versions.txt
25-
COPY language_versions/java-versions.txt /tmp/java-versions.txt
26-
COPY language_versions/terraform-versions.txt /tmp/terraform-versions.txt
27-
COPY language_versions/golang-versions.txt /tmp/golang-versions.txt
2823

2924
RUN ./vscode_install.sh

src/base/.devcontainer/devcontainer.json

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,10 @@
1717
"moby": "true",
1818
"installDockerBuildx": "true"
1919
},
20-
"ghcr.io/devcontainers/features/github-cli:1": {}
20+
"ghcr.io/devcontainers/features/github-cli:1": {},
21+
"ghcr.io/devcontainers/features/aws-cli:1": {
22+
"version": "latest"
23+
}
2124
}
2225
}
2326

src/base/.devcontainer/scripts/root_install.sh

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -32,16 +32,16 @@ apt-get -y install --no-install-recommends htop vim curl git build-essential \
3232

3333
# install aws stuff
3434
# Download correct AWS CLI for arch
35-
echo "Installing aws cli"
36-
if [ "$TARGETARCH" = "arm64" ] || [ "$TARGETARCH" == "aarch64" ]; then
37-
wget -O /tmp/awscliv2.zip --no-verbose "https://awscli.amazonaws.com/awscli-exe-linux-aarch64.zip"
38-
else
39-
wget -O /tmp/awscliv2.zip --no-verbose "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip"
40-
fi
41-
unzip -q /tmp/awscliv2.zip -d /tmp/aws-cli
42-
/tmp/aws-cli/aws/install
43-
rm /tmp/awscliv2.zip
44-
rm -rf /tmp/aws-cli
35+
# echo "Installing aws cli"
36+
# if [ "$TARGETARCH" = "arm64" ] || [ "$TARGETARCH" == "aarch64" ]; then
37+
# wget -O /tmp/awscliv2.zip --no-verbose "https://awscli.amazonaws.com/awscli-exe-linux-aarch64.zip"
38+
# else
39+
# wget -O /tmp/awscliv2.zip --no-verbose "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip"
40+
# fi
41+
# unzip -q /tmp/awscliv2.zip -d /tmp/aws-cli
42+
# /tmp/aws-cli/aws/install
43+
# rm /tmp/awscliv2.zip
44+
# rm -rf /tmp/aws-cli
4545

4646
# Download correct SAM CLI for arch
4747
echo "Installing aws-sam cli"

src/base/.devcontainer/scripts/vscode_install.sh

Lines changed: 0 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -31,31 +31,6 @@ asdf plugin add trivy https://github.com/zufardhiyaulhaq/asdf-trivy.git
3131
cd /home/vscode
3232
asdf install
3333

34-
# Read Node.js versions from file and install
35-
while IFS= read -r version; do
36-
asdf install nodejs "$version"
37-
done < /tmp/nodejs-versions.txt
38-
39-
# Read Python versions from file and install
40-
while IFS= read -r version; do
41-
asdf install python "$version"
42-
done < /tmp/python-versions.txt
43-
44-
# Read Java versions from file and install
45-
# while IFS= read -r version; do
46-
# asdf install java "$version"
47-
# done < /tmp/java-versions.txt
48-
49-
# Read Terraform versions from file and install
50-
while IFS= read -r version; do
51-
asdf install terraform "$version"
52-
done < /tmp/terraform-versions.txt
53-
54-
# Read Golang versions from file and install
55-
while IFS= read -r version; do
56-
asdf install golang "$version"
57-
done < /tmp/golang-versions.txt
58-
5934
# setup gitsecrets
6035
git-secrets --register-aws --global
6136
git-secrets --add-provider --global -- cat /usr/share/secrets-scanner/nhsd-rules-deny.txt

0 commit comments

Comments
 (0)