@@ -62,12 +62,12 @@ RUN rustup-init -y --target $([[ "${TARGETARCH}" == "amd64" ]] && echo "x86_64-u
6262
6363RUN --mount=type=cache,id=cargo-${TARGETARCH},sharing=locked,target=/cargo/.cargo/registry/,uid=63425 \
6464 . /cargo/.cargo/env \
65- && cargo install sarif-fmt shellcheck-sarif --root /tmp --target $([[ "${TARGETARCH}" == "amd64" ]] && echo "x86_64-unknown-linux-musl" || echo "aarch64-unknown-linux-musl" )
65+ && cargo install shellcheck-sarif sarif-fmt --root /tmp --target $([[ "${TARGETARCH}" == "amd64" ]] && echo "x86_64-unknown-linux-musl" || echo "aarch64-unknown-linux-musl" )
6666
6767FROM scratch AS cargo
6868COPY --link --from=cargo-build /tmp/bin/* /bin/
69- RUN ["/bin/sarif-fmt" , "--help" ]
7069RUN ["/bin/shellcheck-sarif" , "--help" ]
70+ RUN ["/bin/sarif-fmt" , "--help" ]
7171
7272# FROM__END
7373
@@ -102,6 +102,75 @@ COPY --from=kics /app/bin/assets /opt/kics/assets/
102102COPY --link --from=cargo /bin/* /usr/bin/
103103# COPY__END
104104
105+ FROM --platform=$TARGETPLATFORM python:3.11.2-alpine3.17 AS target-python-arm64
106+ RUN mkdir /export-libs && cp /lib/ld-musl-aarch64.so.1 /export-libs
107+ FROM --platform=$TARGETPLATFORM python:3.11.2-alpine3.17 AS target-python-amd64
108+ RUN mkdir /export-libs && cp /lib/ld-musl-x86_64.so.1 /export-libs
109+ FROM target-python-${TARGETARCH} AS target-python
110+ FROM --platform=$BUILDPLATFORM python:3.11.2-alpine3.17 AS python-venv
111+
112+
113+ # ############################################################################################
114+ # # @generated by .automation/build.py using descriptor files, please do not update manually ##
115+ # ############################################################################################
116+
117+ RUN apk add --update --no-cache gcc musl-dev libffi-dev rust cargo cmake make g++ openssl-dev
118+
119+ # PIPVENV_DOWNLOAD__START
120+ RUN PYTHONDONTWRITEBYTECODE=1 pip3 install --no-cache-dir --upgrade pip crossenv \
121+ && mkdir -p "/download/ansible-lint" && pip download -d "/download/ansible-lint" ansible-lint \
122+ && mkdir -p "/download/cpplint" && pip download -d "/download/cpplint" cpplint \
123+ && mkdir -p "/download/cfn-lint" && pip download -d "/download/cfn-lint" cfn-lint \
124+ && mkdir -p "/download/djlint" && pip download -d "/download/djlint" djlint \
125+ && mkdir -p "/download/pylint" && pip download -d "/download/pylint" pylint typing-extensions \
126+ && mkdir -p "/download/black" && pip download -d "/download/black" black \
127+ && mkdir -p "/download/flake8" && pip download -d "/download/flake8" flake8 \
128+ && mkdir -p "/download/isort" && pip download -d "/download/isort" isort black \
129+ && mkdir -p "/download/mypy" && pip download -d "/download/mypy" mypy \
130+ && mkdir -p "/download/pyright" && pip download -d "/download/pyright" pyright \
131+ && mkdir -p "/download/checkov" && pip download -d "/download/checkov" packaging checkov \
132+ && mkdir -p "/download/semgrep" && pip download -d "/download/semgrep" semgrep \
133+ && mkdir -p "/download/rst-lint" && pip download -d "/download/rst-lint" restructuredtext_lint \
134+ && mkdir -p "/download/rstcheck" && pip download -d "/download/rstcheck" rstcheck \
135+ && mkdir -p "/download/rstfmt" && pip download -d "/download/rstfmt" rstfmt \
136+ && mkdir -p "/download/proselint" && pip download -d "/download/proselint" proselint \
137+ && mkdir -p "/download/sqlfluff" && pip download -d "/download/sqlfluff" sqlfluff \
138+ && mkdir -p "/download/yamllint" && pip download -d "/download/yamllint" yamllint
139+
140+ # PIPVENV_DOWNLOAD__END
141+
142+ RUN mkdir /venvs
143+
144+ COPY --link --from=target-python /usr/local/bin/python3 /usr/local/bin/target-python3
145+ # COPY --link --from=target-python /export-libs/* /lib
146+
147+ # ############################################################################################
148+ # # @generated by .automation/build.py using descriptor files, please do not update manually ##
149+ # ############################################################################################
150+
151+ # PIPVENV__START
152+ RUN echo \
153+ && 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 ./../.. \
154+ && mkdir -p "/venvs/cpplint" && cd "/venvs/cpplint" && python3 -m crossenv /usr/local/bin/target-python3 . && source bin/activate && PYTHONDONTWRITEBYTECODE=1 pip3 install --find-links /download/cpplint --no-cache-dir cpplint && deactivate && cd ./../.. \
155+ && mkdir -p "/venvs/cfn-lint" && cd "/venvs/cfn-lint" && python3 -m crossenv /usr/local/bin/target-python3 . && source bin/activate && PYTHONDONTWRITEBYTECODE=1 pip3 install --find-links /download/cfn-lint --no-cache-dir cfn-lint && deactivate && cd ./../.. \
156+ && 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 ./../.. \
157+ && mkdir -p "/venvs/pylint" && cd "/venvs/pylint" && python3 -m crossenv /usr/local/bin/target-python3 . && source bin/activate && PYTHONDONTWRITEBYTECODE=1 pip3 install --find-links /download/pylint --no-cache-dir pylint typing-extensions && deactivate && cd ./../.. \
158+ && mkdir -p "/venvs/black" && cd "/venvs/black" && python3 -m crossenv /usr/local/bin/target-python3 . && source bin/activate && PYTHONDONTWRITEBYTECODE=1 pip3 install --find-links /download/black --no-cache-dir black && deactivate && cd ./../.. \
159+ && mkdir -p "/venvs/flake8" && cd "/venvs/flake8" && python3 -m crossenv /usr/local/bin/target-python3 . && source bin/activate && PYTHONDONTWRITEBYTECODE=1 pip3 install --find-links /download/flake8 --no-cache-dir flake8 && deactivate && cd ./../.. \
160+ && mkdir -p "/venvs/isort" && cd "/venvs/isort" && python3 -m crossenv /usr/local/bin/target-python3 . && source bin/activate && PYTHONDONTWRITEBYTECODE=1 pip3 install --find-links /download/isort --no-cache-dir isort black && deactivate && cd ./../.. \
161+ && mkdir -p "/venvs/mypy" && cd "/venvs/mypy" && python3 -m crossenv /usr/local/bin/target-python3 . && source bin/activate && PYTHONDONTWRITEBYTECODE=1 pip3 install --find-links /download/mypy --no-cache-dir mypy && deactivate && cd ./../.. \
162+ && mkdir -p "/venvs/pyright" && cd "/venvs/pyright" && python3 -m crossenv /usr/local/bin/target-python3 . && source bin/activate && PYTHONDONTWRITEBYTECODE=1 pip3 install --find-links /download/pyright --no-cache-dir pyright && deactivate && cd ./../.. \
163+ && 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 ./../.. \
164+ && 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 ./../.. \
165+ && mkdir -p "/venvs/rst-lint" && cd "/venvs/rst-lint" && python3 -m crossenv /usr/local/bin/target-python3 . && source bin/activate && PYTHONDONTWRITEBYTECODE=1 pip3 install --find-links /download/rst-lint --no-cache-dir restructuredtext_lint && deactivate && cd ./../.. \
166+ && mkdir -p "/venvs/rstcheck" && cd "/venvs/rstcheck" && python3 -m crossenv /usr/local/bin/target-python3 . && source bin/activate && PYTHONDONTWRITEBYTECODE=1 pip3 install --find-links /download/rstcheck --no-cache-dir rstcheck && deactivate && cd ./../.. \
167+ && mkdir -p "/venvs/rstfmt" && cd "/venvs/rstfmt" && python3 -m crossenv /usr/local/bin/target-python3 . && source bin/activate && PYTHONDONTWRITEBYTECODE=1 pip3 install --find-links /download/rstfmt --no-cache-dir rstfmt && deactivate && cd ./../.. \
168+ && 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 ./../.. \
169+ && 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 ./../.. \
170+ && 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 ./../.. \
171+ && find . | grep -E "(/__pycache__$|\. pyc$|\. pyo$)" | xargs rm -rf && rm -rf /root/.cache
172+
173+ # PIPVENV__END
105174
106175# #################
107176# Get base image #
@@ -193,36 +262,18 @@ RUN mkdir -p ${GOPATH}/src ${GOPATH}/bin || true && \
193262 # Ignore npm package issues
194263 yarn config set ignore-engines true || true
195264
265+ COPY --link --from=python-venv /venv /venv
266+
196267# ############################################################################################
197268# # @generated by .automation/build.py using descriptor files, please do not update manually ##
198269# ############################################################################################
199270# PIP__START
200271
201272# PIP__END
202273
203- # PIPVENV__START
204- RUN PYTHONDONTWRITEBYTECODE=1 pip3 install --no-cache-dir --upgrade pip virtualenv \
205- && mkdir -p "/venvs/ansible-lint" && cd "/venvs/ansible-lint" && virtualenv . && source bin/activate && PYTHONDONTWRITEBYTECODE=1 pip3 install --no-cache-dir ansible-lint && deactivate && cd ./../.. \
206- && mkdir -p "/venvs/cpplint" && cd "/venvs/cpplint" && virtualenv . && source bin/activate && PYTHONDONTWRITEBYTECODE=1 pip3 install --no-cache-dir cpplint && deactivate && cd ./../.. \
207- && mkdir -p "/venvs/cfn-lint" && cd "/venvs/cfn-lint" && virtualenv . && source bin/activate && PYTHONDONTWRITEBYTECODE=1 pip3 install --no-cache-dir cfn-lint && deactivate && cd ./../.. \
208- && mkdir -p "/venvs/djlint" && cd "/venvs/djlint" && virtualenv . && source bin/activate && PYTHONDONTWRITEBYTECODE=1 pip3 install --no-cache-dir djlint && deactivate && cd ./../.. \
209- && mkdir -p "/venvs/pylint" && cd "/venvs/pylint" && virtualenv . && source bin/activate && PYTHONDONTWRITEBYTECODE=1 pip3 install --no-cache-dir pylint typing-extensions && deactivate && cd ./../.. \
210- && mkdir -p "/venvs/black" && cd "/venvs/black" && virtualenv . && source bin/activate && PYTHONDONTWRITEBYTECODE=1 pip3 install --no-cache-dir black && deactivate && cd ./../.. \
211- && mkdir -p "/venvs/flake8" && cd "/venvs/flake8" && virtualenv . && source bin/activate && PYTHONDONTWRITEBYTECODE=1 pip3 install --no-cache-dir flake8 && deactivate && cd ./../.. \
212- && mkdir -p "/venvs/isort" && cd "/venvs/isort" && virtualenv . && source bin/activate && PYTHONDONTWRITEBYTECODE=1 pip3 install --no-cache-dir isort black && deactivate && cd ./../.. \
213- && mkdir -p "/venvs/mypy" && cd "/venvs/mypy" && virtualenv . && source bin/activate && PYTHONDONTWRITEBYTECODE=1 pip3 install --no-cache-dir mypy && deactivate && cd ./../.. \
214- && mkdir -p "/venvs/pyright" && cd "/venvs/pyright" && virtualenv . && source bin/activate && PYTHONDONTWRITEBYTECODE=1 pip3 install --no-cache-dir pyright && deactivate && cd ./../.. \
215- && mkdir -p "/venvs/checkov" && cd "/venvs/checkov" && virtualenv . && source bin/activate && PYTHONDONTWRITEBYTECODE=1 pip3 install --no-cache-dir packaging checkov && deactivate && cd ./../.. \
216- && mkdir -p "/venvs/semgrep" && cd "/venvs/semgrep" && virtualenv . && source bin/activate && PYTHONDONTWRITEBYTECODE=1 pip3 install --no-cache-dir semgrep && deactivate && cd ./../.. \
217- && mkdir -p "/venvs/rst-lint" && cd "/venvs/rst-lint" && virtualenv . && source bin/activate && PYTHONDONTWRITEBYTECODE=1 pip3 install --no-cache-dir restructuredtext_lint && deactivate && cd ./../.. \
218- && mkdir -p "/venvs/rstcheck" && cd "/venvs/rstcheck" && virtualenv . && source bin/activate && PYTHONDONTWRITEBYTECODE=1 pip3 install --no-cache-dir rstcheck && deactivate && cd ./../.. \
219- && mkdir -p "/venvs/rstfmt" && cd "/venvs/rstfmt" && virtualenv . && source bin/activate && PYTHONDONTWRITEBYTECODE=1 pip3 install --no-cache-dir rstfmt && deactivate && cd ./../.. \
220- && mkdir -p "/venvs/proselint" && cd "/venvs/proselint" && virtualenv . && source bin/activate && PYTHONDONTWRITEBYTECODE=1 pip3 install --no-cache-dir proselint && deactivate && cd ./../.. \
221- && mkdir -p "/venvs/sqlfluff" && cd "/venvs/sqlfluff" && virtualenv . && source bin/activate && PYTHONDONTWRITEBYTECODE=1 pip3 install --no-cache-dir sqlfluff && deactivate && cd ./../.. \
222- && mkdir -p "/venvs/yamllint" && cd "/venvs/yamllint" && virtualenv . && source bin/activate && PYTHONDONTWRITEBYTECODE=1 pip3 install --no-cache-dir yamllint && deactivate && cd ./../.. \
223- && find . | grep -E "(/__pycache__$|\. pyc$|\. pyo$)" | xargs rm -rf && rm -rf /root/.cache
274+ # PIPVENV_PATH__START
224275ENV PATH="${PATH}" :/venvs/ansible-lint/bin:/venvs/cpplint/bin:/venvs/cfn-lint/bin:/venvs/djlint/bin:/venvs/pylint/bin:/venvs/black/bin:/venvs/flake8/bin:/venvs/isort/bin:/venvs/mypy/bin:/venvs/pyright/bin:/venvs/checkov/bin:/venvs/semgrep/bin:/venvs/rst-lint/bin:/venvs/rstcheck/bin:/venvs/rstfmt/bin:/venvs/proselint/bin:/venvs/sqlfluff/bin:/venvs/yamllint/bin
225- # PIPVENV__END
276+ # PIPVENV_PATH__END
226277
227278# ###########################
228279# Install NPM dependencies #
0 commit comments