@@ -50,12 +50,12 @@ RUN rustup-init -y --target $([[ "${TARGETARCH}" == "amd64" ]] && echo "x86_64-u
5050
5151RUN --mount=type=cache,id=cargo-${TARGETARCH},sharing=locked,target=/cargo/.cargo/registry/,uid=63425 \
5252 . /cargo/.cargo/env \
53- && cargo install sarif-fmt shellcheck-sarif --root /tmp --target $([[ "${TARGETARCH}" == "amd64" ]] && echo "x86_64-unknown-linux-musl" || echo "aarch64-unknown-linux-musl" )
53+ && cargo install shellcheck-sarif sarif-fmt --root /tmp --target $([[ "${TARGETARCH}" == "amd64" ]] && echo "x86_64-unknown-linux-musl" || echo "aarch64-unknown-linux-musl" )
5454
5555FROM scratch AS cargo
5656COPY --link --from=cargo-build /tmp/bin/* /bin/
57- RUN ["/bin/sarif-fmt" , "--help" ]
5857RUN ["/bin/shellcheck-sarif" , "--help" ]
58+ RUN ["/bin/sarif-fmt" , "--help" ]
5959
6060# FROM__END
6161
@@ -83,6 +83,57 @@ COPY --link --from=gitleaks /usr/bin/gitleaks /usr/bin/
8383COPY --link --from=cargo /bin/* /usr/bin/
8484# COPY__END
8585
86+ FROM --platform=$TARGETPLATFORM python:3.11.2-alpine3.17 AS target-python-arm64
87+ RUN mkdir /export-libs && cp /lib/ld-musl-aarch64.so.1 /export-libs
88+ FROM --platform=$TARGETPLATFORM python:3.11.2-alpine3.17 AS target-python-amd64
89+ RUN mkdir /export-libs && cp /lib/ld-musl-x86_64.so.1 /export-libs
90+ FROM target-python-${TARGETARCH} AS target-python
91+ FROM --platform=$BUILDPLATFORM python:3.11.2-alpine3.17 AS python-venv
92+
93+
94+ # ############################################################################################
95+ # # @generated by .automation/build.py using descriptor files, please do not update manually ##
96+ # ############################################################################################
97+
98+ RUN apk add --update --no-cache gcc musl-dev libffi-dev rust cargo cmake make g++ openssl-dev
99+
100+ # PIPVENV_DOWNLOAD__START
101+ RUN PYTHONDONTWRITEBYTECODE=1 pip3 install --no-cache-dir --upgrade pip crossenv \
102+ && mkdir -p "/download/ansible-lint" && pip download -d "/download/ansible-lint" ansible-lint \
103+ && mkdir -p "/download/djlint" && pip download -d "/download/djlint" djlint \
104+ && mkdir -p "/download/checkov" && pip download -d "/download/checkov" packaging checkov \
105+ && mkdir -p "/download/semgrep" && pip download -d "/download/semgrep" semgrep \
106+ && mkdir -p "/download/snakemake" && pip download -d "/download/snakemake" snakemake \
107+ && mkdir -p "/download/snakefmt" && pip download -d "/download/snakefmt" snakefmt \
108+ && mkdir -p "/download/proselint" && pip download -d "/download/proselint" proselint \
109+ && mkdir -p "/download/sqlfluff" && pip download -d "/download/sqlfluff" sqlfluff \
110+ && mkdir -p "/download/yamllint" && pip download -d "/download/yamllint" yamllint
111+
112+ # PIPVENV_DOWNLOAD__END
113+
114+ RUN mkdir /venvs
115+
116+ COPY --link --from=target-python /usr/local/bin/python3 /usr/local/bin/target-python3
117+ # COPY --link --from=target-python /export-libs/* /lib
118+
119+ # ############################################################################################
120+ # # @generated by .automation/build.py using descriptor files, please do not update manually ##
121+ # ############################################################################################
122+
123+ # PIPVENV__START
124+ RUN echo \
125+ && mkdir -p "/venvs/ansible-lint" && cd "/venvs/ansible-lint" && python3 -m crossenv /usr/local/bin/target-python3 . && source bin/activate && PYTHONDONTWRITEBYTECODE=1 pip3 install --find-links /download/ansible-lint --no-cache-dir ansible-lint && deactivate && cd ./../.. \
126+ && mkdir -p "/venvs/djlint" && cd "/venvs/djlint" && python3 -m crossenv /usr/local/bin/target-python3 . && source bin/activate && PYTHONDONTWRITEBYTECODE=1 pip3 install --find-links /download/djlint --no-cache-dir djlint && deactivate && cd ./../.. \
127+ && mkdir -p "/venvs/checkov" && cd "/venvs/checkov" && python3 -m crossenv /usr/local/bin/target-python3 . && source bin/activate && PYTHONDONTWRITEBYTECODE=1 pip3 install --find-links /download/checkov --no-cache-dir packaging checkov && deactivate && cd ./../.. \
128+ && mkdir -p "/venvs/semgrep" && cd "/venvs/semgrep" && python3 -m crossenv /usr/local/bin/target-python3 . && source bin/activate && PYTHONDONTWRITEBYTECODE=1 pip3 install --find-links /download/semgrep --no-cache-dir semgrep && deactivate && cd ./../.. \
129+ && mkdir -p "/venvs/snakemake" && cd "/venvs/snakemake" && python3 -m crossenv /usr/local/bin/target-python3 . && source bin/activate && PYTHONDONTWRITEBYTECODE=1 pip3 install --find-links /download/snakemake --no-cache-dir snakemake && deactivate && cd ./../.. \
130+ && mkdir -p "/venvs/snakefmt" && cd "/venvs/snakefmt" && python3 -m crossenv /usr/local/bin/target-python3 . && source bin/activate && PYTHONDONTWRITEBYTECODE=1 pip3 install --find-links /download/snakefmt --no-cache-dir snakefmt && deactivate && cd ./../.. \
131+ && mkdir -p "/venvs/proselint" && cd "/venvs/proselint" && python3 -m crossenv /usr/local/bin/target-python3 . && source bin/activate && PYTHONDONTWRITEBYTECODE=1 pip3 install --find-links /download/proselint --no-cache-dir proselint && deactivate && cd ./../.. \
132+ && mkdir -p "/venvs/sqlfluff" && cd "/venvs/sqlfluff" && python3 -m crossenv /usr/local/bin/target-python3 . && source bin/activate && PYTHONDONTWRITEBYTECODE=1 pip3 install --find-links /download/sqlfluff --no-cache-dir sqlfluff && deactivate && cd ./../.. \
133+ && mkdir -p "/venvs/yamllint" && cd "/venvs/yamllint" && python3 -m crossenv /usr/local/bin/target-python3 . && source bin/activate && PYTHONDONTWRITEBYTECODE=1 pip3 install --find-links /download/yamllint --no-cache-dir yamllint && deactivate && cd ./../.. \
134+ && find . | grep -E "(/__pycache__$|\. pyc$|\. pyo$)" | xargs rm -rf && rm -rf /root/.cache
135+
136+ # PIPVENV__END
86137
87138# #################
88139# Get base image #
@@ -158,27 +209,18 @@ RUN mkdir -p ${GOPATH}/src ${GOPATH}/bin || true && \
158209 # Ignore npm package issues
159210 yarn config set ignore-engines true || true
160211
212+ COPY --link --from=python-venv /venv /venv
213+
161214# ############################################################################################
162215# # @generated by .automation/build.py using descriptor files, please do not update manually ##
163216# ############################################################################################
164217# PIP__START
165218
166219# PIP__END
167220
168- # PIPVENV__START
169- RUN PYTHONDONTWRITEBYTECODE=1 pip3 install --no-cache-dir --upgrade pip virtualenv \
170- && mkdir -p "/venvs/ansible-lint" && cd "/venvs/ansible-lint" && virtualenv . && source bin/activate && PYTHONDONTWRITEBYTECODE=1 pip3 install --no-cache-dir ansible-lint && deactivate && cd ./../.. \
171- && mkdir -p "/venvs/djlint" && cd "/venvs/djlint" && virtualenv . && source bin/activate && PYTHONDONTWRITEBYTECODE=1 pip3 install --no-cache-dir djlint && deactivate && cd ./../.. \
172- && mkdir -p "/venvs/checkov" && cd "/venvs/checkov" && virtualenv . && source bin/activate && PYTHONDONTWRITEBYTECODE=1 pip3 install --no-cache-dir packaging checkov && deactivate && cd ./../.. \
173- && mkdir -p "/venvs/semgrep" && cd "/venvs/semgrep" && virtualenv . && source bin/activate && PYTHONDONTWRITEBYTECODE=1 pip3 install --no-cache-dir semgrep && deactivate && cd ./../.. \
174- && mkdir -p "/venvs/snakemake" && cd "/venvs/snakemake" && virtualenv . && source bin/activate && PYTHONDONTWRITEBYTECODE=1 pip3 install --no-cache-dir snakemake && deactivate && cd ./../.. \
175- && mkdir -p "/venvs/snakefmt" && cd "/venvs/snakefmt" && virtualenv . && source bin/activate && PYTHONDONTWRITEBYTECODE=1 pip3 install --no-cache-dir snakefmt && deactivate && cd ./../.. \
176- && mkdir -p "/venvs/proselint" && cd "/venvs/proselint" && virtualenv . && source bin/activate && PYTHONDONTWRITEBYTECODE=1 pip3 install --no-cache-dir proselint && deactivate && cd ./../.. \
177- && mkdir -p "/venvs/sqlfluff" && cd "/venvs/sqlfluff" && virtualenv . && source bin/activate && PYTHONDONTWRITEBYTECODE=1 pip3 install --no-cache-dir sqlfluff && deactivate && cd ./../.. \
178- && mkdir -p "/venvs/yamllint" && cd "/venvs/yamllint" && virtualenv . && source bin/activate && PYTHONDONTWRITEBYTECODE=1 pip3 install --no-cache-dir yamllint && deactivate && cd ./../.. \
179- && find . | grep -E "(/__pycache__$|\. pyc$|\. pyo$)" | xargs rm -rf && rm -rf /root/.cache
221+ # PIPVENV_PATH__START
180222ENV PATH="${PATH}" :/venvs/ansible-lint/bin:/venvs/djlint/bin:/venvs/checkov/bin:/venvs/semgrep/bin:/venvs/snakemake/bin:/venvs/snakefmt/bin:/venvs/proselint/bin:/venvs/sqlfluff/bin:/venvs/yamllint/bin
181- # PIPVENV__END
223+ # PIPVENV_PATH__END
182224
183225# ###########################
184226# Install NPM dependencies #
0 commit comments