chore(docker): dedup hadolint setup and add git-lfs and git-email

Signed-off-by: Andrei Jiroh Halili <ajhalili2006@andreijiroh.eu.org>
This commit is contained in:
Andrei Jiroh Halili 2023-09-30 01:44:08 +08:00
parent f21d3f10b6
commit a670c7ecb1
No known key found for this signature in database
GPG key ID: 67BFC91B3DA12BE8

View file

@ -1,20 +1,18 @@
# syntax=docker/dockerfile:1 # syntax=docker/dockerfile:1
FROM ghcr.io/hadolint/hadolint:latest-alpine AS hadolint-binary
# Since we're building against edge at risk, it is important to note # Since we're building against edge at risk, it is important to note
# that anything might go wrong. # that anything might go wrong.
FROM alpine:edge AS buildkit FROM alpine:edge AS buildkit
# Since hadolint isn't in the package repos for Alpine yet, we'll copying from the offical # Since hadolint isn't in the package repos for Alpine yet, we'll copying from the offical
# Docker image instead. # Docker image instead.
COPY --from=hadolint-binary /bin/hadolint /usr/bin/hadolint COPY --from=ghcr.io/hadolint/hadolint:latest-alpine /bin/hadolint /usr/bin/hadolint
ENV PACKAGES=/usr/local/lib/python3.11/site-packages ENV PACKAGES=/usr/local/lib/python3.11/site-packages
ENV PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/root/.local/bin ENV PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/root/.local/bin
ENV PYTHONDONTWRITEBYTECODE=1 ENV PYTHONDONTWRITEBYTECODE=1
COPY --from=hadolint-binary /bin/hadolint /usr/bin/hadolint
# https://squidfunk.github.io/mkdocs-material/setup/setting-up-social-cards/#linux but for Alpine # https://squidfunk.github.io/mkdocs-material/setup/setting-up-social-cards/#linux but for Alpine
# Also installs Doppler CLI for accessing secrets securely within CI
# hadolint ignore=DL3018,DL3013 # hadolint ignore=DL3018,DL3013
RUN apk add --no-cache \ RUN apk add --no-cache \
cairo-dev \ cairo-dev \
@ -37,15 +35,17 @@ RUN apk add --no-cache \
npm \ npm \
yarn \ yarn \
git \ git \
git-email \
git-lfs \
git-fast-import \ git-fast-import \
openssh \ openssh \
gnupg \ gnupg \
curl \ curl \
&& curl -Ls --tlsv1.2 --proto "=https" --retry 3 https://cli.doppler.com/install.sh \ && curl -Ls --tlsv1.2 --proto "=https" --retry 3 https://cli.doppler.com/install.sh \
| sh | sh
# The "--break-system-packages" is added so I don't need to do requirements.txt workaround,
# although I also consider using pipx if we wanted to. # See https://www.jeffgeerling.com/blog/2023/how-solve-error-externally-managed-environment-when-installing-pip3
# See also https://www.jeffgeerling.com/blog/2023/how-solve-error-externally-managed-environment-when-installing-pip3 # for context behind removing the EXTERNALLY-MANAGED file
RUN rm -rv /usr/lib/python3*/EXTERNALLY-MANAGED \ RUN rm -rv /usr/lib/python3*/EXTERNALLY-MANAGED \
&& pip install --no-cache \ && pip install --no-cache \
mkdocs-material \ mkdocs-material \