-
Notifications
You must be signed in to change notification settings - Fork 3
Expand file tree
/
Copy pathDockerfile
More file actions
73 lines (59 loc) · 2.25 KB
/
Dockerfile
File metadata and controls
73 lines (59 loc) · 2.25 KB
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
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
FROM public.ecr.aws/amazonlinux/amazonlinux:2023.9.20251208.0-minimal@sha256:3f6c5a2858113e9bb6710dfccdace7dc698e83f7a012240a1d07b3a46d273999
HEALTHCHECK NONE
ENTRYPOINT []
ARG USER_NAME=default
ARG USER_HOME=/home/default
ARG USER_ID=1000
SHELL ["/bin/bash", "-euo", "pipefail", "-c"]
# FIXME @TL golang needed until Amazon Linux gets an yq package
RUN dnf upgrade -y \
&& dnf install -y \
awscli-2-2.32.1-1.amzn2023.0.1 \
bash-5.2.15-1.amzn2023.0.2 \
bzip2-1.0.8-6.amzn2023.0.2 \
curl-minimal-8.11.1-4.amzn2023.0.3 \
diffutils-3.8-1.amzn2023.0.2 \
findutils-1:4.8.0-2.amzn2023.0.2 \
git-2.50.1-1.amzn2023.0.1 \
golang-1.24.9-1.amzn2023.0.1 \
grep-3.8-1.amzn2023.0.4 \
gzip-1.12-1.amzn2023.0.1 \
iputils-20210202-2.amzn2023.0.4 \
jq-1.7.1-51.amzn2023 \
libxml2-2.10.4-1.amzn2023.0.13 \
make-1:4.3-5.amzn2023.0.2 \
openssh-8.7p1-8.amzn2023.0.15 \
patch-2.7.6-14.amzn2023.0.2 \
pcre2-tools-10.40-1.amzn2023.0.3 \
pwgen-2.08-11.amzn2023 \
python3-3.9.25-1.amzn2023.0.1 \
python3-pip-21.3.1-2.amzn2023.0.14 \
rsync-3.4.0-1.amzn2023.0.3 \
sed-4.8-7.amzn2023.0.2 \
tar-2:1.34-1.amzn2023.0.4 \
unzip-6.0-57.amzn2023.0.2 \
wget-1.21.3-1.amzn2023.0.4 \
xz-5.2.5-9.amzn2023.0.2 \
zip-3.0-28.amzn2023.0.2 \
&& dnf clean all \
&& rm -rf /var/cache/yum
# FIXME @TL workaround until Amazon Linux gets a pipx package
# FIXME @TL --break-system-packages not supported until Python 3.11.
RUN pip install --no-cache-dir --upgrade pipx==1.8.0
# FIXME @TL remarshal requires python 3.10
COPY requirements.txt /tmp/requirements.txt
RUN pipx ensurepath --global \
&& xargs -a /tmp/requirements.txt -n 1 pipx install --global \
&& rm -f /tmp/requirements.txt
COPY go.mod /tmp/go.mod
# FIXME @TL workaround until Amazon Linux gets an yq package
# hadolint ignore=DL3062 # [Pin versions]: versions are pinned
RUN grep -E '^require\s+[a-zA-Z0-9/._-]+\s+v[0-9]+\.[0-9]+\.[0-9]+$' /tmp/go.mod | awk '{print $2"@"$3}' | while read -r package; do \
GOBIN=/usr/local/bin go install "${package}"; \
done \
&& rm -f /tmp/go.mod
RUN chmod 777 /opt \
&& adduser --home-dir "${USER_HOME}" --uid "${USER_ID}" "${USER_NAME}"
USER "${USER_NAME}"
ENV HOME="${USER_HOME}"
WORKDIR /opt