From d334669fc0ed5bc45e2279db0eabb163ac16d9e4 Mon Sep 17 00:00:00 2001 From: Kurt von Laven Date: Thu, 20 Oct 2022 00:16:54 -0700 Subject: [PATCH] Run Docker container as user 1000 (#1975) Previously, mega-linter-runner ran the MegaLinter Docker image as root. In the Docker image, chown the /megalinter, /megalinter-descriptors, and /action/lib/.automation directories to be owned by user and group 1000. Users whose files became owned by root as a consequence of having run a previous version of MegaLinter will need to chown them to be owned by user 1000 when upgrading MegaLinter. --- .automation/build.py | 3 ++- CHANGELOG.md | 2 ++ Dockerfile | 9 +++++---- flavors/ci_light/Dockerfile | 11 ++++++++--- flavors/cupcake/Dockerfile | 11 ++++++++--- flavors/documentation/Dockerfile | 11 ++++++++--- flavors/dotnet/Dockerfile | 11 ++++++++--- flavors/go/Dockerfile | 11 ++++++++--- flavors/java/Dockerfile | 11 ++++++++--- flavors/javascript/Dockerfile | 11 ++++++++--- flavors/php/Dockerfile | 11 ++++++++--- flavors/python/Dockerfile | 11 ++++++++--- flavors/ruby/Dockerfile | 11 ++++++++--- flavors/rust/Dockerfile | 11 ++++++++--- flavors/salesforce/Dockerfile | 11 ++++++++--- flavors/security/Dockerfile | 11 ++++++++--- flavors/swift/Dockerfile | 11 ++++++++--- flavors/terraform/Dockerfile | 11 ++++++++--- linters/action_actionlint/Dockerfile | 11 ++++++++--- linters/ansible_ansible_lint/Dockerfile | 11 ++++++++--- linters/arm_arm_ttk/Dockerfile | 11 ++++++++--- linters/bash_exec/Dockerfile | 11 ++++++++--- linters/bash_shellcheck/Dockerfile | 11 ++++++++--- linters/bash_shfmt/Dockerfile | 11 ++++++++--- linters/bicep_bicep_linter/Dockerfile | 11 ++++++++--- linters/c_cpplint/Dockerfile | 11 ++++++++--- linters/clojure_clj_kondo/Dockerfile | 11 ++++++++--- linters/cloudformation_cfn_lint/Dockerfile | 11 ++++++++--- linters/coffee_coffeelint/Dockerfile | 11 ++++++++--- linters/copypaste_jscpd/Dockerfile | 11 ++++++++--- linters/cpp_cpplint/Dockerfile | 11 ++++++++--- linters/csharp_csharpier/Dockerfile | 11 ++++++++--- linters/csharp_dotnet_format/Dockerfile | 11 ++++++++--- linters/css_scss_lint/Dockerfile | 11 ++++++++--- linters/css_stylelint/Dockerfile | 11 ++++++++--- linters/dart_dartanalyzer/Dockerfile | 11 ++++++++--- linters/dockerfile_hadolint/Dockerfile | 11 ++++++++--- linters/editorconfig_editorconfig_checker/Dockerfile | 11 ++++++++--- linters/env_dotenv_linter/Dockerfile | 11 ++++++++--- linters/gherkin_gherkin_lint/Dockerfile | 11 ++++++++--- linters/go_golangci_lint/Dockerfile | 11 ++++++++--- linters/go_revive/Dockerfile | 11 ++++++++--- linters/graphql_graphql_schema_linter/Dockerfile | 11 ++++++++--- linters/groovy_npm_groovy_lint/Dockerfile | 11 ++++++++--- linters/html_djlint/Dockerfile | 11 ++++++++--- linters/html_htmlhint/Dockerfile | 11 ++++++++--- linters/java_checkstyle/Dockerfile | 11 ++++++++--- linters/java_pmd/Dockerfile | 11 ++++++++--- linters/javascript_es/Dockerfile | 11 ++++++++--- linters/javascript_prettier/Dockerfile | 11 ++++++++--- linters/javascript_standard/Dockerfile | 11 ++++++++--- linters/json_eslint_plugin_jsonc/Dockerfile | 11 ++++++++--- linters/json_jsonlint/Dockerfile | 11 ++++++++--- linters/json_npm_package_json_lint/Dockerfile | 11 ++++++++--- linters/json_prettier/Dockerfile | 11 ++++++++--- linters/json_v8r/Dockerfile | 11 ++++++++--- linters/jsx_eslint/Dockerfile | 11 ++++++++--- linters/kotlin_ktlint/Dockerfile | 11 ++++++++--- linters/kubernetes_helm/Dockerfile | 11 ++++++++--- linters/kubernetes_kubeconform/Dockerfile | 11 ++++++++--- linters/kubernetes_kubeval/Dockerfile | 11 ++++++++--- linters/latex_chktex/Dockerfile | 11 ++++++++--- linters/lua_luacheck/Dockerfile | 11 ++++++++--- linters/makefile_checkmake/Dockerfile | 11 ++++++++--- linters/markdown_markdown_link_check/Dockerfile | 11 ++++++++--- linters/markdown_markdown_table_formatter/Dockerfile | 11 ++++++++--- linters/markdown_markdownlint/Dockerfile | 11 ++++++++--- linters/markdown_remark_lint/Dockerfile | 11 ++++++++--- linters/openapi_spectral/Dockerfile | 11 ++++++++--- linters/perl_perlcritic/Dockerfile | 11 ++++++++--- linters/php_phpcs/Dockerfile | 11 ++++++++--- linters/php_phplint/Dockerfile | 11 ++++++++--- linters/php_phpstan/Dockerfile | 11 ++++++++--- linters/php_psalm/Dockerfile | 11 ++++++++--- linters/powershell_powershell/Dockerfile | 11 ++++++++--- linters/powershell_powershell_formatter/Dockerfile | 11 ++++++++--- linters/protobuf_protolint/Dockerfile | 11 ++++++++--- linters/puppet_puppet_lint/Dockerfile | 11 ++++++++--- linters/python_bandit/Dockerfile | 11 ++++++++--- linters/python_black/Dockerfile | 11 ++++++++--- linters/python_flake8/Dockerfile | 11 ++++++++--- linters/python_isort/Dockerfile | 11 ++++++++--- linters/python_mypy/Dockerfile | 11 ++++++++--- linters/python_pylint/Dockerfile | 11 ++++++++--- linters/python_pyright/Dockerfile | 11 ++++++++--- linters/python_ruff/Dockerfile | 11 ++++++++--- linters/r_lintr/Dockerfile | 11 ++++++++--- linters/raku_raku/Dockerfile | 11 ++++++++--- linters/repository_checkov/Dockerfile | 11 ++++++++--- linters/repository_devskim/Dockerfile | 11 ++++++++--- linters/repository_dustilock/Dockerfile | 11 ++++++++--- linters/repository_git_diff/Dockerfile | 11 ++++++++--- linters/repository_gitleaks/Dockerfile | 11 ++++++++--- linters/repository_goodcheck/Dockerfile | 11 ++++++++--- linters/repository_secretlint/Dockerfile | 11 ++++++++--- linters/repository_semgrep/Dockerfile | 11 ++++++++--- linters/repository_syft/Dockerfile | 11 ++++++++--- linters/repository_trivy/Dockerfile | 11 ++++++++--- linters/rst_rst_lint/Dockerfile | 11 ++++++++--- linters/rst_rstcheck/Dockerfile | 11 ++++++++--- linters/rst_rstfmt/Dockerfile | 11 ++++++++--- linters/ruby_rubocop/Dockerfile | 11 ++++++++--- linters/rust_clippy/Dockerfile | 11 ++++++++--- linters/salesforce_sfdx_scanner_apex/Dockerfile | 11 ++++++++--- linters/salesforce_sfdx_scanner_aura/Dockerfile | 11 ++++++++--- linters/salesforce_sfdx_scanner_lwc/Dockerfile | 11 ++++++++--- linters/scala_scalafix/Dockerfile | 11 ++++++++--- linters/snakemake_lint/Dockerfile | 11 ++++++++--- linters/snakemake_snakefmt/Dockerfile | 11 ++++++++--- linters/spell_cspell/Dockerfile | 11 ++++++++--- linters/spell_misspell/Dockerfile | 11 ++++++++--- linters/spell_proselint/Dockerfile | 11 ++++++++--- linters/sql_sql_lint/Dockerfile | 11 ++++++++--- linters/sql_sqlfluff/Dockerfile | 11 ++++++++--- linters/sql_tsqllint/Dockerfile | 11 ++++++++--- linters/swift_swiftlint/Dockerfile | 11 ++++++++--- linters/tekton_tekton_lint/Dockerfile | 11 ++++++++--- linters/terraform_checkov/Dockerfile | 11 ++++++++--- linters/terraform_kics/Dockerfile | 11 ++++++++--- linters/terraform_terraform_fmt/Dockerfile | 11 ++++++++--- linters/terraform_terragrunt/Dockerfile | 11 ++++++++--- linters/terraform_terrascan/Dockerfile | 11 ++++++++--- linters/terraform_tflint/Dockerfile | 11 ++++++++--- linters/tsx_eslint/Dockerfile | 11 ++++++++--- linters/typescript_es/Dockerfile | 11 ++++++++--- linters/typescript_prettier/Dockerfile | 11 ++++++++--- linters/typescript_standard/Dockerfile | 11 ++++++++--- linters/vbdotnet_dotnet_format/Dockerfile | 11 ++++++++--- linters/xml_xmllint/Dockerfile | 11 ++++++++--- linters/yaml_prettier/Dockerfile | 11 ++++++++--- linters/yaml_v8r/Dockerfile | 11 ++++++++--- linters/yaml_yamllint/Dockerfile | 11 ++++++++--- mega-linter-runner/lib/runner.js | 1 + 133 files changed, 1042 insertions(+), 392 deletions(-) diff --git a/.automation/build.py b/.automation/build.py index 812c5b2d053..1453e270be5 100644 --- a/.automation/build.py +++ b/.automation/build.py @@ -251,8 +251,9 @@ def generate_flavor(flavor, flavor_info): file.write(action_yml) logging.info(f"Updated {flavor_action_yml}") extra_lines = [ - "COPY entrypoint.sh /entrypoint.sh", + "COPY --chown=1000:1000 entrypoint.sh /entrypoint.sh", "RUN chmod +x entrypoint.sh", + "USER 1000", 'ENTRYPOINT ["/bin/bash", "/entrypoint.sh"]', ] build_dockerfile( diff --git a/CHANGELOG.md b/CHANGELOG.md index a39b5dde09f..a48cf7c367e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -22,6 +22,8 @@ Note: Can be used with `oxsecurity/megalinter@beta` in your GitHub Action mega-l - Upgrade create-pull-request and create-or-update-comment GitHub Actions - Increase auto-update-linters GitHub Action timeout - Upgrade base Docker image to python:3.11.3-alpine3.17 + - Make Docker image rootless, and run it as user 1000 rather than root by + @Kurt-von-Laven in [#1975](https://github.com/oxsecurity/megalinter/issues/1975). - Documentation diff --git a/Dockerfile b/Dockerfile index f8f773cdf40..40ba41851e7 100644 --- a/Dockerfile +++ b/Dockerfile @@ -666,7 +666,7 @@ ENV KICS_QUERIES_PATH=/opt/kics/assets/queries KICS_LIBRARIES_PATH=/opt/kics/ass ################################ # Installs python dependencies # ################################ -COPY megalinter /megalinter +COPY --chown=1000:1000 megalinter /megalinter RUN PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py install \ && PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py clean --all \ && rm -rf /var/cache/apk/* \ @@ -675,8 +675,8 @@ RUN PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py install \ ####################################### # Copy scripts and rules to container # ####################################### -COPY megalinter/descriptors /megalinter-descriptors -COPY TEMPLATES /action/lib/.automation +COPY --chown=1000:1000 megalinter/descriptors /megalinter-descriptors +COPY --chown=1000:1000 TEMPLATES /action/lib/.automation ########################### # Get the build arguments # @@ -715,7 +715,8 @@ LABEL com.github.actions.name="MegaLinter" \ org.opencontainers.image.description="Lint your code base with GitHub Actions" #EXTRA_DOCKERFILE_LINES__START -COPY entrypoint.sh /entrypoint.sh +COPY --chown=1000:1000 entrypoint.sh /entrypoint.sh RUN chmod +x entrypoint.sh +USER 1000 ENTRYPOINT ["/bin/bash", "/entrypoint.sh"] #EXTRA_DOCKERFILE_LINES__END diff --git a/flavors/ci_light/Dockerfile b/flavors/ci_light/Dockerfile index 8b3e796978c..f4fdc906dbe 100644 --- a/flavors/ci_light/Dockerfile +++ b/flavors/ci_light/Dockerfile @@ -207,7 +207,7 @@ RUN wget -q -O - https://raw.githubusercontent.com/dotenv-linter/dotenv-linter/m ################################ # Installs python dependencies # ################################ -COPY megalinter /megalinter +COPY --chown=1000:1000 megalinter /megalinter RUN PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py install \ && PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py clean --all \ && rm -rf /var/cache/apk/* \ @@ -216,8 +216,13 @@ RUN PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py install \ ####################################### # Copy scripts and rules to container # ####################################### -COPY megalinter/descriptors /megalinter-descriptors -COPY TEMPLATES /action/lib/.automation +COPY --chown=1000:1000 megalinter/descriptors /megalinter-descriptors +COPY --chown=1000:1000 TEMPLATES /action/lib/.automation + +##################################################### +# Make the container rootless for sake of security. # +##################################################### +USER 1000 ########################### # Get the build arguments # diff --git a/flavors/cupcake/Dockerfile b/flavors/cupcake/Dockerfile index a8b17ba261a..944db973652 100644 --- a/flavors/cupcake/Dockerfile +++ b/flavors/cupcake/Dockerfile @@ -448,7 +448,7 @@ ENV KICS_QUERIES_PATH=/opt/kics/assets/queries KICS_LIBRARIES_PATH=/opt/kics/ass ################################ # Installs python dependencies # ################################ -COPY megalinter /megalinter +COPY --chown=1000:1000 megalinter /megalinter RUN PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py install \ && PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py clean --all \ && rm -rf /var/cache/apk/* \ @@ -457,8 +457,13 @@ RUN PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py install \ ####################################### # Copy scripts and rules to container # ####################################### -COPY megalinter/descriptors /megalinter-descriptors -COPY TEMPLATES /action/lib/.automation +COPY --chown=1000:1000 megalinter/descriptors /megalinter-descriptors +COPY --chown=1000:1000 TEMPLATES /action/lib/.automation + +##################################################### +# Make the container rootless for sake of security. # +##################################################### +USER 1000 ########################### # Get the build arguments # diff --git a/flavors/documentation/Dockerfile b/flavors/documentation/Dockerfile index a4e12f9297b..f319d6bc655 100644 --- a/flavors/documentation/Dockerfile +++ b/flavors/documentation/Dockerfile @@ -294,7 +294,7 @@ RUN printf '#!/bin/bash \n\nif [[ -x "$1" ]]; then exit 0; else echo "Error: Fil ################################ # Installs python dependencies # ################################ -COPY megalinter /megalinter +COPY --chown=1000:1000 megalinter /megalinter RUN PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py install \ && PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py clean --all \ && rm -rf /var/cache/apk/* \ @@ -303,8 +303,13 @@ RUN PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py install \ ####################################### # Copy scripts and rules to container # ####################################### -COPY megalinter/descriptors /megalinter-descriptors -COPY TEMPLATES /action/lib/.automation +COPY --chown=1000:1000 megalinter/descriptors /megalinter-descriptors +COPY --chown=1000:1000 TEMPLATES /action/lib/.automation + +##################################################### +# Make the container rootless for sake of security. # +##################################################### +USER 1000 ########################### # Get the build arguments # diff --git a/flavors/dotnet/Dockerfile b/flavors/dotnet/Dockerfile index 45ae9669204..2edbea3b8a7 100644 --- a/flavors/dotnet/Dockerfile +++ b/flavors/dotnet/Dockerfile @@ -389,7 +389,7 @@ RUN curl --retry 5 --retry-delay 5 -sLO "${ARM_TTK_URI}" \ ################################ # Installs python dependencies # ################################ -COPY megalinter /megalinter +COPY --chown=1000:1000 megalinter /megalinter RUN PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py install \ && PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py clean --all \ && rm -rf /var/cache/apk/* \ @@ -398,8 +398,13 @@ RUN PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py install \ ####################################### # Copy scripts and rules to container # ####################################### -COPY megalinter/descriptors /megalinter-descriptors -COPY TEMPLATES /action/lib/.automation +COPY --chown=1000:1000 megalinter/descriptors /megalinter-descriptors +COPY --chown=1000:1000 TEMPLATES /action/lib/.automation + +##################################################### +# Make the container rootless for sake of security. # +##################################################### +USER 1000 ########################### # Get the build arguments # diff --git a/flavors/go/Dockerfile b/flavors/go/Dockerfile index a4f02e960be..7d1db129893 100644 --- a/flavors/go/Dockerfile +++ b/flavors/go/Dockerfile @@ -309,7 +309,7 @@ RUN printf '#!/bin/bash \n\nif [[ -x "$1" ]]; then exit 0; else echo "Error: Fil ################################ # Installs python dependencies # ################################ -COPY megalinter /megalinter +COPY --chown=1000:1000 megalinter /megalinter RUN PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py install \ && PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py clean --all \ && rm -rf /var/cache/apk/* \ @@ -318,8 +318,13 @@ RUN PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py install \ ####################################### # Copy scripts and rules to container # ####################################### -COPY megalinter/descriptors /megalinter-descriptors -COPY TEMPLATES /action/lib/.automation +COPY --chown=1000:1000 megalinter/descriptors /megalinter-descriptors +COPY --chown=1000:1000 TEMPLATES /action/lib/.automation + +##################################################### +# Make the container rootless for sake of security. # +##################################################### +USER 1000 ########################### # Get the build arguments # diff --git a/flavors/java/Dockerfile b/flavors/java/Dockerfile index 763c8657232..3a5ea00d691 100644 --- a/flavors/java/Dockerfile +++ b/flavors/java/Dockerfile @@ -322,7 +322,7 @@ RUN wget --quiet https://github.com/pmd/pmd/releases/download/pmd_releases%2F${P ################################ # Installs python dependencies # ################################ -COPY megalinter /megalinter +COPY --chown=1000:1000 megalinter /megalinter RUN PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py install \ && PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py clean --all \ && rm -rf /var/cache/apk/* \ @@ -331,8 +331,13 @@ RUN PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py install \ ####################################### # Copy scripts and rules to container # ####################################### -COPY megalinter/descriptors /megalinter-descriptors -COPY TEMPLATES /action/lib/.automation +COPY --chown=1000:1000 megalinter/descriptors /megalinter-descriptors +COPY --chown=1000:1000 TEMPLATES /action/lib/.automation + +##################################################### +# Make the container rootless for sake of security. # +##################################################### +USER 1000 ########################### # Get the build arguments # diff --git a/flavors/javascript/Dockerfile b/flavors/javascript/Dockerfile index cf54fbc6a9a..13393debf0e 100644 --- a/flavors/javascript/Dockerfile +++ b/flavors/javascript/Dockerfile @@ -310,7 +310,7 @@ RUN printf '#!/bin/bash \n\nif [[ -x "$1" ]]; then exit 0; else echo "Error: Fil ################################ # Installs python dependencies # ################################ -COPY megalinter /megalinter +COPY --chown=1000:1000 megalinter /megalinter RUN PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py install \ && PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py clean --all \ && rm -rf /var/cache/apk/* \ @@ -319,8 +319,13 @@ RUN PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py install \ ####################################### # Copy scripts and rules to container # ####################################### -COPY megalinter/descriptors /megalinter-descriptors -COPY TEMPLATES /action/lib/.automation +COPY --chown=1000:1000 megalinter/descriptors /megalinter-descriptors +COPY --chown=1000:1000 TEMPLATES /action/lib/.automation + +##################################################### +# Make the container rootless for sake of security. # +##################################################### +USER 1000 ########################### # Get the build arguments # diff --git a/flavors/php/Dockerfile b/flavors/php/Dockerfile index 16bab34c5ee..fd16bf29528 100644 --- a/flavors/php/Dockerfile +++ b/flavors/php/Dockerfile @@ -338,7 +338,7 @@ RUN composer global require --ignore-platform-reqs overtrue/phplint ^5.3 \ ################################ # Installs python dependencies # ################################ -COPY megalinter /megalinter +COPY --chown=1000:1000 megalinter /megalinter RUN PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py install \ && PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py clean --all \ && rm -rf /var/cache/apk/* \ @@ -347,8 +347,13 @@ RUN PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py install \ ####################################### # Copy scripts and rules to container # ####################################### -COPY megalinter/descriptors /megalinter-descriptors -COPY TEMPLATES /action/lib/.automation +COPY --chown=1000:1000 megalinter/descriptors /megalinter-descriptors +COPY --chown=1000:1000 TEMPLATES /action/lib/.automation + +##################################################### +# Make the container rootless for sake of security. # +##################################################### +USER 1000 ########################### # Get the build arguments # diff --git a/flavors/python/Dockerfile b/flavors/python/Dockerfile index 3d8bfe98a85..7a34579a018 100644 --- a/flavors/python/Dockerfile +++ b/flavors/python/Dockerfile @@ -305,7 +305,7 @@ RUN printf '#!/bin/bash \n\nif [[ -x "$1" ]]; then exit 0; else echo "Error: Fil ################################ # Installs python dependencies # ################################ -COPY megalinter /megalinter +COPY --chown=1000:1000 megalinter /megalinter RUN PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py install \ && PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py clean --all \ && rm -rf /var/cache/apk/* \ @@ -314,8 +314,13 @@ RUN PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py install \ ####################################### # Copy scripts and rules to container # ####################################### -COPY megalinter/descriptors /megalinter-descriptors -COPY TEMPLATES /action/lib/.automation +COPY --chown=1000:1000 megalinter/descriptors /megalinter-descriptors +COPY --chown=1000:1000 TEMPLATES /action/lib/.automation + +##################################################### +# Make the container rootless for sake of security. # +##################################################### +USER 1000 ########################### # Get the build arguments # diff --git a/flavors/ruby/Dockerfile b/flavors/ruby/Dockerfile index dab6fc26827..c01dcb3b9c0 100644 --- a/flavors/ruby/Dockerfile +++ b/flavors/ruby/Dockerfile @@ -295,7 +295,7 @@ RUN printf '#!/bin/bash \n\nif [[ -x "$1" ]]; then exit 0; else echo "Error: Fil ################################ # Installs python dependencies # ################################ -COPY megalinter /megalinter +COPY --chown=1000:1000 megalinter /megalinter RUN PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py install \ && PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py clean --all \ && rm -rf /var/cache/apk/* \ @@ -304,8 +304,13 @@ RUN PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py install \ ####################################### # Copy scripts and rules to container # ####################################### -COPY megalinter/descriptors /megalinter-descriptors -COPY TEMPLATES /action/lib/.automation +COPY --chown=1000:1000 megalinter/descriptors /megalinter-descriptors +COPY --chown=1000:1000 TEMPLATES /action/lib/.automation + +##################################################### +# Make the container rootless for sake of security. # +##################################################### +USER 1000 ########################### # Get the build arguments # diff --git a/flavors/rust/Dockerfile b/flavors/rust/Dockerfile index 77eb6f8b794..dbaeb06a057 100644 --- a/flavors/rust/Dockerfile +++ b/flavors/rust/Dockerfile @@ -289,7 +289,7 @@ RUN printf '#!/bin/bash \n\nif [[ -x "$1" ]]; then exit 0; else echo "Error: Fil ################################ # Installs python dependencies # ################################ -COPY megalinter /megalinter +COPY --chown=1000:1000 megalinter /megalinter RUN PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py install \ && PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py clean --all \ && rm -rf /var/cache/apk/* \ @@ -298,8 +298,13 @@ RUN PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py install \ ####################################### # Copy scripts and rules to container # ####################################### -COPY megalinter/descriptors /megalinter-descriptors -COPY TEMPLATES /action/lib/.automation +COPY --chown=1000:1000 megalinter/descriptors /megalinter-descriptors +COPY --chown=1000:1000 TEMPLATES /action/lib/.automation + +##################################################### +# Make the container rootless for sake of security. # +##################################################### +USER 1000 ########################### # Get the build arguments # diff --git a/flavors/salesforce/Dockerfile b/flavors/salesforce/Dockerfile index 167c7d0b2e7..d598f2088e4 100644 --- a/flavors/salesforce/Dockerfile +++ b/flavors/salesforce/Dockerfile @@ -316,7 +316,7 @@ RUN echo y|sfdx plugins:install sfdx-hardis \ ################################ # Installs python dependencies # ################################ -COPY megalinter /megalinter +COPY --chown=1000:1000 megalinter /megalinter RUN PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py install \ && PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py clean --all \ && rm -rf /var/cache/apk/* \ @@ -325,8 +325,13 @@ RUN PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py install \ ####################################### # Copy scripts and rules to container # ####################################### -COPY megalinter/descriptors /megalinter-descriptors -COPY TEMPLATES /action/lib/.automation +COPY --chown=1000:1000 megalinter/descriptors /megalinter-descriptors +COPY --chown=1000:1000 TEMPLATES /action/lib/.automation + +##################################################### +# Make the container rootless for sake of security. # +##################################################### +USER 1000 ########################### # Get the build arguments # diff --git a/flavors/security/Dockerfile b/flavors/security/Dockerfile index 8a4b82b52aa..1ae5ddd1934 100644 --- a/flavors/security/Dockerfile +++ b/flavors/security/Dockerfile @@ -251,7 +251,7 @@ ENV KICS_QUERIES_PATH=/opt/kics/assets/queries KICS_LIBRARIES_PATH=/opt/kics/ass ################################ # Installs python dependencies # ################################ -COPY megalinter /megalinter +COPY --chown=1000:1000 megalinter /megalinter RUN PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py install \ && PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py clean --all \ && rm -rf /var/cache/apk/* \ @@ -260,8 +260,13 @@ RUN PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py install \ ####################################### # Copy scripts and rules to container # ####################################### -COPY megalinter/descriptors /megalinter-descriptors -COPY TEMPLATES /action/lib/.automation +COPY --chown=1000:1000 megalinter/descriptors /megalinter-descriptors +COPY --chown=1000:1000 TEMPLATES /action/lib/.automation + +##################################################### +# Make the container rootless for sake of security. # +##################################################### +USER 1000 ########################### # Get the build arguments # diff --git a/flavors/swift/Dockerfile b/flavors/swift/Dockerfile index 893ecd307bc..666cded33f9 100644 --- a/flavors/swift/Dockerfile +++ b/flavors/swift/Dockerfile @@ -292,7 +292,7 @@ RUN rc-update add docker boot && rc-service docker start || true \ ################################ # Installs python dependencies # ################################ -COPY megalinter /megalinter +COPY --chown=1000:1000 megalinter /megalinter RUN PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py install \ && PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py clean --all \ && rm -rf /var/cache/apk/* \ @@ -301,8 +301,13 @@ RUN PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py install \ ####################################### # Copy scripts and rules to container # ####################################### -COPY megalinter/descriptors /megalinter-descriptors -COPY TEMPLATES /action/lib/.automation +COPY --chown=1000:1000 megalinter/descriptors /megalinter-descriptors +COPY --chown=1000:1000 TEMPLATES /action/lib/.automation + +##################################################### +# Make the container rootless for sake of security. # +##################################################### +USER 1000 ########################### # Get the build arguments # diff --git a/flavors/terraform/Dockerfile b/flavors/terraform/Dockerfile index 7d1b8fb3c93..05bc96062db 100644 --- a/flavors/terraform/Dockerfile +++ b/flavors/terraform/Dockerfile @@ -318,7 +318,7 @@ ENV KICS_QUERIES_PATH=/opt/kics/assets/queries KICS_LIBRARIES_PATH=/opt/kics/ass ################################ # Installs python dependencies # ################################ -COPY megalinter /megalinter +COPY --chown=1000:1000 megalinter /megalinter RUN PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py install \ && PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py clean --all \ && rm -rf /var/cache/apk/* \ @@ -327,8 +327,13 @@ RUN PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py install \ ####################################### # Copy scripts and rules to container # ####################################### -COPY megalinter/descriptors /megalinter-descriptors -COPY TEMPLATES /action/lib/.automation +COPY --chown=1000:1000 megalinter/descriptors /megalinter-descriptors +COPY --chown=1000:1000 TEMPLATES /action/lib/.automation + +##################################################### +# Make the container rootless for sake of security. # +##################################################### +USER 1000 ########################### # Get the build arguments # diff --git a/linters/action_actionlint/Dockerfile b/linters/action_actionlint/Dockerfile index 163146cf141..612c1e29e31 100644 --- a/linters/action_actionlint/Dockerfile +++ b/linters/action_actionlint/Dockerfile @@ -139,7 +139,7 @@ COPY --link --from=shellcheck /bin/shellcheck /usr/bin/shellcheck ################################ # Installs python dependencies # ################################ -COPY megalinter /megalinter +COPY --chown=1000:1000 megalinter /megalinter RUN PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py install \ && PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py clean --all \ && rm -rf /var/cache/apk/* \ @@ -148,8 +148,13 @@ RUN PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py install \ ####################################### # Copy scripts and rules to container # ####################################### -COPY megalinter/descriptors /megalinter-descriptors -COPY TEMPLATES /action/lib/.automation +COPY --chown=1000:1000 megalinter/descriptors /megalinter-descriptors +COPY --chown=1000:1000 TEMPLATES /action/lib/.automation + +##################################################### +# Make the container rootless for sake of security. # +##################################################### +USER 1000 ########################### # Get the build arguments # diff --git a/linters/ansible_ansible_lint/Dockerfile b/linters/ansible_ansible_lint/Dockerfile index b076a4764cb..5a18e87afe8 100644 --- a/linters/ansible_ansible_lint/Dockerfile +++ b/linters/ansible_ansible_lint/Dockerfile @@ -131,7 +131,7 @@ ENV PATH="/node-deps/node_modules/.bin:${PATH}" \ ################################ # Installs python dependencies # ################################ -COPY megalinter /megalinter +COPY --chown=1000:1000 megalinter /megalinter RUN PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py install \ && PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py clean --all \ && rm -rf /var/cache/apk/* \ @@ -140,8 +140,13 @@ RUN PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py install \ ####################################### # Copy scripts and rules to container # ####################################### -COPY megalinter/descriptors /megalinter-descriptors -COPY TEMPLATES /action/lib/.automation +COPY --chown=1000:1000 megalinter/descriptors /megalinter-descriptors +COPY --chown=1000:1000 TEMPLATES /action/lib/.automation + +##################################################### +# Make the container rootless for sake of security. # +##################################################### +USER 1000 ########################### # Get the build arguments # diff --git a/linters/arm_arm_ttk/Dockerfile b/linters/arm_arm_ttk/Dockerfile index 349d561df29..9442bc5bfe9 100644 --- a/linters/arm_arm_ttk/Dockerfile +++ b/linters/arm_arm_ttk/Dockerfile @@ -155,7 +155,7 @@ RUN curl --retry 5 --retry-delay 5 -sLO "${ARM_TTK_URI}" \ ################################ # Installs python dependencies # ################################ -COPY megalinter /megalinter +COPY --chown=1000:1000 megalinter /megalinter RUN PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py install \ && PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py clean --all \ && rm -rf /var/cache/apk/* \ @@ -164,8 +164,13 @@ RUN PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py install \ ####################################### # Copy scripts and rules to container # ####################################### -COPY megalinter/descriptors /megalinter-descriptors -COPY TEMPLATES /action/lib/.automation +COPY --chown=1000:1000 megalinter/descriptors /megalinter-descriptors +COPY --chown=1000:1000 TEMPLATES /action/lib/.automation + +##################################################### +# Make the container rootless for sake of security. # +##################################################### +USER 1000 ########################### # Get the build arguments # diff --git a/linters/bash_exec/Dockerfile b/linters/bash_exec/Dockerfile index 3bffad9fb35..db9ae0611e0 100644 --- a/linters/bash_exec/Dockerfile +++ b/linters/bash_exec/Dockerfile @@ -132,7 +132,7 @@ RUN printf '#!/bin/bash \n\nif [[ -x "$1" ]]; then exit 0; else echo "Error: Fil ################################ # Installs python dependencies # ################################ -COPY megalinter /megalinter +COPY --chown=1000:1000 megalinter /megalinter RUN PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py install \ && PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py clean --all \ && rm -rf /var/cache/apk/* \ @@ -141,8 +141,13 @@ RUN PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py install \ ####################################### # Copy scripts and rules to container # ####################################### -COPY megalinter/descriptors /megalinter-descriptors -COPY TEMPLATES /action/lib/.automation +COPY --chown=1000:1000 megalinter/descriptors /megalinter-descriptors +COPY --chown=1000:1000 TEMPLATES /action/lib/.automation + +##################################################### +# Make the container rootless for sake of security. # +##################################################### +USER 1000 ########################### # Get the build arguments # diff --git a/linters/bash_shellcheck/Dockerfile b/linters/bash_shellcheck/Dockerfile index d9ebf2abba7..71f7b16ac8c 100644 --- a/linters/bash_shellcheck/Dockerfile +++ b/linters/bash_shellcheck/Dockerfile @@ -134,7 +134,7 @@ COPY --link --from=shellcheck /bin/shellcheck /usr/bin/shellcheck ################################ # Installs python dependencies # ################################ -COPY megalinter /megalinter +COPY --chown=1000:1000 megalinter /megalinter RUN PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py install \ && PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py clean --all \ && rm -rf /var/cache/apk/* \ @@ -143,8 +143,13 @@ RUN PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py install \ ####################################### # Copy scripts and rules to container # ####################################### -COPY megalinter/descriptors /megalinter-descriptors -COPY TEMPLATES /action/lib/.automation +COPY --chown=1000:1000 megalinter/descriptors /megalinter-descriptors +COPY --chown=1000:1000 TEMPLATES /action/lib/.automation + +##################################################### +# Make the container rootless for sake of security. # +##################################################### +USER 1000 ########################### # Get the build arguments # diff --git a/linters/bash_shfmt/Dockerfile b/linters/bash_shfmt/Dockerfile index a8e9a618ba5..c9c7fcf41be 100644 --- a/linters/bash_shfmt/Dockerfile +++ b/linters/bash_shfmt/Dockerfile @@ -130,7 +130,7 @@ COPY --link --from=shfmt /bin/shfmt /usr/bin/ ################################ # Installs python dependencies # ################################ -COPY megalinter /megalinter +COPY --chown=1000:1000 megalinter /megalinter RUN PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py install \ && PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py clean --all \ && rm -rf /var/cache/apk/* \ @@ -139,8 +139,13 @@ RUN PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py install \ ####################################### # Copy scripts and rules to container # ####################################### -COPY megalinter/descriptors /megalinter-descriptors -COPY TEMPLATES /action/lib/.automation +COPY --chown=1000:1000 megalinter/descriptors /megalinter-descriptors +COPY --chown=1000:1000 TEMPLATES /action/lib/.automation + +##################################################### +# Make the container rootless for sake of security. # +##################################################### +USER 1000 ########################### # Get the build arguments # diff --git a/linters/bicep_bicep_linter/Dockerfile b/linters/bicep_bicep_linter/Dockerfile index 38ba96d5020..77933cd166d 100644 --- a/linters/bicep_bicep_linter/Dockerfile +++ b/linters/bicep_bicep_linter/Dockerfile @@ -135,7 +135,7 @@ RUN curl --retry 5 --retry-delay 5 -sLo ${BICEP_EXE} "${BICEP_URI}" \ ################################ # Installs python dependencies # ################################ -COPY megalinter /megalinter +COPY --chown=1000:1000 megalinter /megalinter RUN PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py install \ && PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py clean --all \ && rm -rf /var/cache/apk/* \ @@ -144,8 +144,13 @@ RUN PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py install \ ####################################### # Copy scripts and rules to container # ####################################### -COPY megalinter/descriptors /megalinter-descriptors -COPY TEMPLATES /action/lib/.automation +COPY --chown=1000:1000 megalinter/descriptors /megalinter-descriptors +COPY --chown=1000:1000 TEMPLATES /action/lib/.automation + +##################################################### +# Make the container rootless for sake of security. # +##################################################### +USER 1000 ########################### # Get the build arguments # diff --git a/linters/c_cpplint/Dockerfile b/linters/c_cpplint/Dockerfile index b483cb75a34..8c9a4a50656 100644 --- a/linters/c_cpplint/Dockerfile +++ b/linters/c_cpplint/Dockerfile @@ -131,7 +131,7 @@ ENV PATH="/node-deps/node_modules/.bin:${PATH}" \ ################################ # Installs python dependencies # ################################ -COPY megalinter /megalinter +COPY --chown=1000:1000 megalinter /megalinter RUN PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py install \ && PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py clean --all \ && rm -rf /var/cache/apk/* \ @@ -140,8 +140,13 @@ RUN PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py install \ ####################################### # Copy scripts and rules to container # ####################################### -COPY megalinter/descriptors /megalinter-descriptors -COPY TEMPLATES /action/lib/.automation +COPY --chown=1000:1000 megalinter/descriptors /megalinter-descriptors +COPY --chown=1000:1000 TEMPLATES /action/lib/.automation + +##################################################### +# Make the container rootless for sake of security. # +##################################################### +USER 1000 ########################### # Get the build arguments # diff --git a/linters/clojure_clj_kondo/Dockerfile b/linters/clojure_clj_kondo/Dockerfile index 2ef42c23742..6787db0b1c5 100644 --- a/linters/clojure_clj_kondo/Dockerfile +++ b/linters/clojure_clj_kondo/Dockerfile @@ -133,7 +133,7 @@ RUN curl -sLO https://raw.githubusercontent.com/clj-kondo/clj-kondo/master/scrip ################################ # Installs python dependencies # ################################ -COPY megalinter /megalinter +COPY --chown=1000:1000 megalinter /megalinter RUN PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py install \ && PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py clean --all \ && rm -rf /var/cache/apk/* \ @@ -142,8 +142,13 @@ RUN PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py install \ ####################################### # Copy scripts and rules to container # ####################################### -COPY megalinter/descriptors /megalinter-descriptors -COPY TEMPLATES /action/lib/.automation +COPY --chown=1000:1000 megalinter/descriptors /megalinter-descriptors +COPY --chown=1000:1000 TEMPLATES /action/lib/.automation + +##################################################### +# Make the container rootless for sake of security. # +##################################################### +USER 1000 ########################### # Get the build arguments # diff --git a/linters/cloudformation_cfn_lint/Dockerfile b/linters/cloudformation_cfn_lint/Dockerfile index 3054c647aaa..74240cd2894 100644 --- a/linters/cloudformation_cfn_lint/Dockerfile +++ b/linters/cloudformation_cfn_lint/Dockerfile @@ -131,7 +131,7 @@ ENV PATH="/node-deps/node_modules/.bin:${PATH}" \ ################################ # Installs python dependencies # ################################ -COPY megalinter /megalinter +COPY --chown=1000:1000 megalinter /megalinter RUN PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py install \ && PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py clean --all \ && rm -rf /var/cache/apk/* \ @@ -140,8 +140,13 @@ RUN PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py install \ ####################################### # Copy scripts and rules to container # ####################################### -COPY megalinter/descriptors /megalinter-descriptors -COPY TEMPLATES /action/lib/.automation +COPY --chown=1000:1000 megalinter/descriptors /megalinter-descriptors +COPY --chown=1000:1000 TEMPLATES /action/lib/.automation + +##################################################### +# Make the container rootless for sake of security. # +##################################################### +USER 1000 ########################### # Get the build arguments # diff --git a/linters/coffee_coffeelint/Dockerfile b/linters/coffee_coffeelint/Dockerfile index deb249f722c..a96da1b1876 100644 --- a/linters/coffee_coffeelint/Dockerfile +++ b/linters/coffee_coffeelint/Dockerfile @@ -148,7 +148,7 @@ ENV PATH="/node-deps/node_modules/.bin:${PATH}" \ ################################ # Installs python dependencies # ################################ -COPY megalinter /megalinter +COPY --chown=1000:1000 megalinter /megalinter RUN PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py install \ && PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py clean --all \ && rm -rf /var/cache/apk/* \ @@ -157,8 +157,13 @@ RUN PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py install \ ####################################### # Copy scripts and rules to container # ####################################### -COPY megalinter/descriptors /megalinter-descriptors -COPY TEMPLATES /action/lib/.automation +COPY --chown=1000:1000 megalinter/descriptors /megalinter-descriptors +COPY --chown=1000:1000 TEMPLATES /action/lib/.automation + +##################################################### +# Make the container rootless for sake of security. # +##################################################### +USER 1000 ########################### # Get the build arguments # diff --git a/linters/copypaste_jscpd/Dockerfile b/linters/copypaste_jscpd/Dockerfile index d8bef923b90..a99f59cf7f5 100644 --- a/linters/copypaste_jscpd/Dockerfile +++ b/linters/copypaste_jscpd/Dockerfile @@ -149,7 +149,7 @@ ENV PATH="/node-deps/node_modules/.bin:${PATH}" \ ################################ # Installs python dependencies # ################################ -COPY megalinter /megalinter +COPY --chown=1000:1000 megalinter /megalinter RUN PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py install \ && PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py clean --all \ && rm -rf /var/cache/apk/* \ @@ -158,8 +158,13 @@ RUN PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py install \ ####################################### # Copy scripts and rules to container # ####################################### -COPY megalinter/descriptors /megalinter-descriptors -COPY TEMPLATES /action/lib/.automation +COPY --chown=1000:1000 megalinter/descriptors /megalinter-descriptors +COPY --chown=1000:1000 TEMPLATES /action/lib/.automation + +##################################################### +# Make the container rootless for sake of security. # +##################################################### +USER 1000 ########################### # Get the build arguments # diff --git a/linters/cpp_cpplint/Dockerfile b/linters/cpp_cpplint/Dockerfile index fc87ba0c9de..1e4b7425b5a 100644 --- a/linters/cpp_cpplint/Dockerfile +++ b/linters/cpp_cpplint/Dockerfile @@ -131,7 +131,7 @@ ENV PATH="/node-deps/node_modules/.bin:${PATH}" \ ################################ # Installs python dependencies # ################################ -COPY megalinter /megalinter +COPY --chown=1000:1000 megalinter /megalinter RUN PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py install \ && PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py clean --all \ && rm -rf /var/cache/apk/* \ @@ -140,8 +140,13 @@ RUN PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py install \ ####################################### # Copy scripts and rules to container # ####################################### -COPY megalinter/descriptors /megalinter-descriptors -COPY TEMPLATES /action/lib/.automation +COPY --chown=1000:1000 megalinter/descriptors /megalinter-descriptors +COPY --chown=1000:1000 TEMPLATES /action/lib/.automation + +##################################################### +# Make the container rootless for sake of security. # +##################################################### +USER 1000 ########################### # Get the build arguments # diff --git a/linters/csharp_csharpier/Dockerfile b/linters/csharp_csharpier/Dockerfile index e48f67ed54b..e2e4f51dee0 100644 --- a/linters/csharp_csharpier/Dockerfile +++ b/linters/csharp_csharpier/Dockerfile @@ -145,7 +145,7 @@ RUN /usr/share/dotnet/dotnet tool install -g csharpier ################################ # Installs python dependencies # ################################ -COPY megalinter /megalinter +COPY --chown=1000:1000 megalinter /megalinter RUN PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py install \ && PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py clean --all \ && rm -rf /var/cache/apk/* \ @@ -154,8 +154,13 @@ RUN PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py install \ ####################################### # Copy scripts and rules to container # ####################################### -COPY megalinter/descriptors /megalinter-descriptors -COPY TEMPLATES /action/lib/.automation +COPY --chown=1000:1000 megalinter/descriptors /megalinter-descriptors +COPY --chown=1000:1000 TEMPLATES /action/lib/.automation + +##################################################### +# Make the container rootless for sake of security. # +##################################################### +USER 1000 ########################### # Get the build arguments # diff --git a/linters/csharp_dotnet_format/Dockerfile b/linters/csharp_dotnet_format/Dockerfile index fc26f2f564f..03eec32a669 100644 --- a/linters/csharp_dotnet_format/Dockerfile +++ b/linters/csharp_dotnet_format/Dockerfile @@ -142,7 +142,7 @@ ENV PATH="${PATH}:/root/.dotnet/tools:/usr/share/dotnet" ################################ # Installs python dependencies # ################################ -COPY megalinter /megalinter +COPY --chown=1000:1000 megalinter /megalinter RUN PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py install \ && PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py clean --all \ && rm -rf /var/cache/apk/* \ @@ -151,8 +151,13 @@ RUN PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py install \ ####################################### # Copy scripts and rules to container # ####################################### -COPY megalinter/descriptors /megalinter-descriptors -COPY TEMPLATES /action/lib/.automation +COPY --chown=1000:1000 megalinter/descriptors /megalinter-descriptors +COPY --chown=1000:1000 TEMPLATES /action/lib/.automation + +##################################################### +# Make the container rootless for sake of security. # +##################################################### +USER 1000 ########################### # Get the build arguments # diff --git a/linters/css_scss_lint/Dockerfile b/linters/css_scss_lint/Dockerfile index 87da14e76be..3664f7ac7dc 100644 --- a/linters/css_scss_lint/Dockerfile +++ b/linters/css_scss_lint/Dockerfile @@ -134,7 +134,7 @@ RUN echo 'gem: --no-document' >> ~/.gemrc && \ ################################ # Installs python dependencies # ################################ -COPY megalinter /megalinter +COPY --chown=1000:1000 megalinter /megalinter RUN PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py install \ && PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py clean --all \ && rm -rf /var/cache/apk/* \ @@ -143,8 +143,13 @@ RUN PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py install \ ####################################### # Copy scripts and rules to container # ####################################### -COPY megalinter/descriptors /megalinter-descriptors -COPY TEMPLATES /action/lib/.automation +COPY --chown=1000:1000 megalinter/descriptors /megalinter-descriptors +COPY --chown=1000:1000 TEMPLATES /action/lib/.automation + +##################################################### +# Make the container rootless for sake of security. # +##################################################### +USER 1000 ########################### # Get the build arguments # diff --git a/linters/css_stylelint/Dockerfile b/linters/css_stylelint/Dockerfile index e641a847e8f..535cbf88e68 100644 --- a/linters/css_stylelint/Dockerfile +++ b/linters/css_stylelint/Dockerfile @@ -151,7 +151,7 @@ ENV PATH="/node-deps/node_modules/.bin:${PATH}" \ ################################ # Installs python dependencies # ################################ -COPY megalinter /megalinter +COPY --chown=1000:1000 megalinter /megalinter RUN PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py install \ && PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py clean --all \ && rm -rf /var/cache/apk/* \ @@ -160,8 +160,13 @@ RUN PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py install \ ####################################### # Copy scripts and rules to container # ####################################### -COPY megalinter/descriptors /megalinter-descriptors -COPY TEMPLATES /action/lib/.automation +COPY --chown=1000:1000 megalinter/descriptors /megalinter-descriptors +COPY --chown=1000:1000 TEMPLATES /action/lib/.automation + +##################################################### +# Make the container rootless for sake of security. # +##################################################### +USER 1000 ########################### # Get the build arguments # diff --git a/linters/dart_dartanalyzer/Dockerfile b/linters/dart_dartanalyzer/Dockerfile index bd555ca535b..53fc96fbece 100644 --- a/linters/dart_dartanalyzer/Dockerfile +++ b/linters/dart_dartanalyzer/Dockerfile @@ -138,7 +138,7 @@ RUN wget --tries=50 -q -O /etc/apk/keys/sgerrand.rsa.pub https://alpine-pkgs.sge ################################ # Installs python dependencies # ################################ -COPY megalinter /megalinter +COPY --chown=1000:1000 megalinter /megalinter RUN PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py install \ && PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py clean --all \ && rm -rf /var/cache/apk/* \ @@ -147,8 +147,13 @@ RUN PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py install \ ####################################### # Copy scripts and rules to container # ####################################### -COPY megalinter/descriptors /megalinter-descriptors -COPY TEMPLATES /action/lib/.automation +COPY --chown=1000:1000 megalinter/descriptors /megalinter-descriptors +COPY --chown=1000:1000 TEMPLATES /action/lib/.automation + +##################################################### +# Make the container rootless for sake of security. # +##################################################### +USER 1000 ########################### # Get the build arguments # diff --git a/linters/dockerfile_hadolint/Dockerfile b/linters/dockerfile_hadolint/Dockerfile index 92113bdd94c..e9e0b914d88 100644 --- a/linters/dockerfile_hadolint/Dockerfile +++ b/linters/dockerfile_hadolint/Dockerfile @@ -130,7 +130,7 @@ COPY --link --from=hadolint /bin/hadolint /usr/bin/hadolint ################################ # Installs python dependencies # ################################ -COPY megalinter /megalinter +COPY --chown=1000:1000 megalinter /megalinter RUN PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py install \ && PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py clean --all \ && rm -rf /var/cache/apk/* \ @@ -139,8 +139,13 @@ RUN PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py install \ ####################################### # Copy scripts and rules to container # ####################################### -COPY megalinter/descriptors /megalinter-descriptors -COPY TEMPLATES /action/lib/.automation +COPY --chown=1000:1000 megalinter/descriptors /megalinter-descriptors +COPY --chown=1000:1000 TEMPLATES /action/lib/.automation + +##################################################### +# Make the container rootless for sake of security. # +##################################################### +USER 1000 ########################### # Get the build arguments # diff --git a/linters/editorconfig_editorconfig_checker/Dockerfile b/linters/editorconfig_editorconfig_checker/Dockerfile index 5b1afbed15f..e24216b0a5e 100644 --- a/linters/editorconfig_editorconfig_checker/Dockerfile +++ b/linters/editorconfig_editorconfig_checker/Dockerfile @@ -130,7 +130,7 @@ COPY --link --from=editorconfig-checker /usr/bin/ec /usr/bin/editorconfig-checke ################################ # Installs python dependencies # ################################ -COPY megalinter /megalinter +COPY --chown=1000:1000 megalinter /megalinter RUN PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py install \ && PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py clean --all \ && rm -rf /var/cache/apk/* \ @@ -139,8 +139,13 @@ RUN PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py install \ ####################################### # Copy scripts and rules to container # ####################################### -COPY megalinter/descriptors /megalinter-descriptors -COPY TEMPLATES /action/lib/.automation +COPY --chown=1000:1000 megalinter/descriptors /megalinter-descriptors +COPY --chown=1000:1000 TEMPLATES /action/lib/.automation + +##################################################### +# Make the container rootless for sake of security. # +##################################################### +USER 1000 ########################### # Get the build arguments # diff --git a/linters/env_dotenv_linter/Dockerfile b/linters/env_dotenv_linter/Dockerfile index af5ecc3155f..cb3b3c10ba2 100644 --- a/linters/env_dotenv_linter/Dockerfile +++ b/linters/env_dotenv_linter/Dockerfile @@ -130,7 +130,7 @@ RUN wget -q -O - https://raw.githubusercontent.com/dotenv-linter/dotenv-linter/m ################################ # Installs python dependencies # ################################ -COPY megalinter /megalinter +COPY --chown=1000:1000 megalinter /megalinter RUN PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py install \ && PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py clean --all \ && rm -rf /var/cache/apk/* \ @@ -139,8 +139,13 @@ RUN PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py install \ ####################################### # Copy scripts and rules to container # ####################################### -COPY megalinter/descriptors /megalinter-descriptors -COPY TEMPLATES /action/lib/.automation +COPY --chown=1000:1000 megalinter/descriptors /megalinter-descriptors +COPY --chown=1000:1000 TEMPLATES /action/lib/.automation + +##################################################### +# Make the container rootless for sake of security. # +##################################################### +USER 1000 ########################### # Get the build arguments # diff --git a/linters/gherkin_gherkin_lint/Dockerfile b/linters/gherkin_gherkin_lint/Dockerfile index 8d570243b9b..e55aa12a9a7 100644 --- a/linters/gherkin_gherkin_lint/Dockerfile +++ b/linters/gherkin_gherkin_lint/Dockerfile @@ -148,7 +148,7 @@ ENV PATH="/node-deps/node_modules/.bin:${PATH}" \ ################################ # Installs python dependencies # ################################ -COPY megalinter /megalinter +COPY --chown=1000:1000 megalinter /megalinter RUN PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py install \ && PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py clean --all \ && rm -rf /var/cache/apk/* \ @@ -157,8 +157,13 @@ RUN PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py install \ ####################################### # Copy scripts and rules to container # ####################################### -COPY megalinter/descriptors /megalinter-descriptors -COPY TEMPLATES /action/lib/.automation +COPY --chown=1000:1000 megalinter/descriptors /megalinter-descriptors +COPY --chown=1000:1000 TEMPLATES /action/lib/.automation + +##################################################### +# Make the container rootless for sake of security. # +##################################################### +USER 1000 ########################### # Get the build arguments # diff --git a/linters/go_golangci_lint/Dockerfile b/linters/go_golangci_lint/Dockerfile index bdf3cd58932..f601d6161f1 100644 --- a/linters/go_golangci_lint/Dockerfile +++ b/linters/go_golangci_lint/Dockerfile @@ -133,7 +133,7 @@ RUN wget -O- -nv https://raw.githubusercontent.com/golangci/golangci-lint/master ################################ # Installs python dependencies # ################################ -COPY megalinter /megalinter +COPY --chown=1000:1000 megalinter /megalinter RUN PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py install \ && PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py clean --all \ && rm -rf /var/cache/apk/* \ @@ -142,8 +142,13 @@ RUN PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py install \ ####################################### # Copy scripts and rules to container # ####################################### -COPY megalinter/descriptors /megalinter-descriptors -COPY TEMPLATES /action/lib/.automation +COPY --chown=1000:1000 megalinter/descriptors /megalinter-descriptors +COPY --chown=1000:1000 TEMPLATES /action/lib/.automation + +##################################################### +# Make the container rootless for sake of security. # +##################################################### +USER 1000 ########################### # Get the build arguments # diff --git a/linters/go_revive/Dockerfile b/linters/go_revive/Dockerfile index d2a55d8df46..2debcf4f565 100644 --- a/linters/go_revive/Dockerfile +++ b/linters/go_revive/Dockerfile @@ -135,7 +135,7 @@ COPY --link --from=revive /usr/bin/revive /usr/bin/revive ################################ # Installs python dependencies # ################################ -COPY megalinter /megalinter +COPY --chown=1000:1000 megalinter /megalinter RUN PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py install \ && PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py clean --all \ && rm -rf /var/cache/apk/* \ @@ -144,8 +144,13 @@ RUN PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py install \ ####################################### # Copy scripts and rules to container # ####################################### -COPY megalinter/descriptors /megalinter-descriptors -COPY TEMPLATES /action/lib/.automation +COPY --chown=1000:1000 megalinter/descriptors /megalinter-descriptors +COPY --chown=1000:1000 TEMPLATES /action/lib/.automation + +##################################################### +# Make the container rootless for sake of security. # +##################################################### +USER 1000 ########################### # Get the build arguments # diff --git a/linters/graphql_graphql_schema_linter/Dockerfile b/linters/graphql_graphql_schema_linter/Dockerfile index b7c35885d5a..4ee0f1aa51e 100644 --- a/linters/graphql_graphql_schema_linter/Dockerfile +++ b/linters/graphql_graphql_schema_linter/Dockerfile @@ -149,7 +149,7 @@ ENV PATH="/node-deps/node_modules/.bin:${PATH}" \ ################################ # Installs python dependencies # ################################ -COPY megalinter /megalinter +COPY --chown=1000:1000 megalinter /megalinter RUN PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py install \ && PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py clean --all \ && rm -rf /var/cache/apk/* \ @@ -158,8 +158,13 @@ RUN PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py install \ ####################################### # Copy scripts and rules to container # ####################################### -COPY megalinter/descriptors /megalinter-descriptors -COPY TEMPLATES /action/lib/.automation +COPY --chown=1000:1000 megalinter/descriptors /megalinter-descriptors +COPY --chown=1000:1000 TEMPLATES /action/lib/.automation + +##################################################### +# Make the container rootless for sake of security. # +##################################################### +USER 1000 ########################### # Get the build arguments # diff --git a/linters/groovy_npm_groovy_lint/Dockerfile b/linters/groovy_npm_groovy_lint/Dockerfile index 4e437a84077..fb37f6670bc 100644 --- a/linters/groovy_npm_groovy_lint/Dockerfile +++ b/linters/groovy_npm_groovy_lint/Dockerfile @@ -149,7 +149,7 @@ ENV PATH="/node-deps/node_modules/.bin:${PATH}" \ ################################ # Installs python dependencies # ################################ -COPY megalinter /megalinter +COPY --chown=1000:1000 megalinter /megalinter RUN PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py install \ && PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py clean --all \ && rm -rf /var/cache/apk/* \ @@ -158,8 +158,13 @@ RUN PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py install \ ####################################### # Copy scripts and rules to container # ####################################### -COPY megalinter/descriptors /megalinter-descriptors -COPY TEMPLATES /action/lib/.automation +COPY --chown=1000:1000 megalinter/descriptors /megalinter-descriptors +COPY --chown=1000:1000 TEMPLATES /action/lib/.automation + +##################################################### +# Make the container rootless for sake of security. # +##################################################### +USER 1000 ########################### # Get the build arguments # diff --git a/linters/html_djlint/Dockerfile b/linters/html_djlint/Dockerfile index 03bae352a76..3c3462750ce 100644 --- a/linters/html_djlint/Dockerfile +++ b/linters/html_djlint/Dockerfile @@ -131,7 +131,7 @@ ENV PATH="/node-deps/node_modules/.bin:${PATH}" \ ################################ # Installs python dependencies # ################################ -COPY megalinter /megalinter +COPY --chown=1000:1000 megalinter /megalinter RUN PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py install \ && PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py clean --all \ && rm -rf /var/cache/apk/* \ @@ -140,8 +140,13 @@ RUN PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py install \ ####################################### # Copy scripts and rules to container # ####################################### -COPY megalinter/descriptors /megalinter-descriptors -COPY TEMPLATES /action/lib/.automation +COPY --chown=1000:1000 megalinter/descriptors /megalinter-descriptors +COPY --chown=1000:1000 TEMPLATES /action/lib/.automation + +##################################################### +# Make the container rootless for sake of security. # +##################################################### +USER 1000 ########################### # Get the build arguments # diff --git a/linters/html_htmlhint/Dockerfile b/linters/html_htmlhint/Dockerfile index e635e97253b..007d77785d1 100644 --- a/linters/html_htmlhint/Dockerfile +++ b/linters/html_htmlhint/Dockerfile @@ -148,7 +148,7 @@ ENV PATH="/node-deps/node_modules/.bin:${PATH}" \ ################################ # Installs python dependencies # ################################ -COPY megalinter /megalinter +COPY --chown=1000:1000 megalinter /megalinter RUN PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py install \ && PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py clean --all \ && rm -rf /var/cache/apk/* \ @@ -157,8 +157,13 @@ RUN PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py install \ ####################################### # Copy scripts and rules to container # ####################################### -COPY megalinter/descriptors /megalinter-descriptors -COPY TEMPLATES /action/lib/.automation +COPY --chown=1000:1000 megalinter/descriptors /megalinter-descriptors +COPY --chown=1000:1000 TEMPLATES /action/lib/.automation + +##################################################### +# Make the container rootless for sake of security. # +##################################################### +USER 1000 ########################### # Get the build arguments # diff --git a/linters/java_checkstyle/Dockerfile b/linters/java_checkstyle/Dockerfile index 40785920c5a..38c1b8798cc 100644 --- a/linters/java_checkstyle/Dockerfile +++ b/linters/java_checkstyle/Dockerfile @@ -144,7 +144,7 @@ RUN --mount=type=secret,id=GITHUB_TOKEN CHECKSTYLE_LATEST=$(curl -s \ ################################ # Installs python dependencies # ################################ -COPY megalinter /megalinter +COPY --chown=1000:1000 megalinter /megalinter RUN PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py install \ && PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py clean --all \ && rm -rf /var/cache/apk/* \ @@ -153,8 +153,13 @@ RUN PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py install \ ####################################### # Copy scripts and rules to container # ####################################### -COPY megalinter/descriptors /megalinter-descriptors -COPY TEMPLATES /action/lib/.automation +COPY --chown=1000:1000 megalinter/descriptors /megalinter-descriptors +COPY --chown=1000:1000 TEMPLATES /action/lib/.automation + +##################################################### +# Make the container rootless for sake of security. # +##################################################### +USER 1000 ########################### # Get the build arguments # diff --git a/linters/java_pmd/Dockerfile b/linters/java_pmd/Dockerfile index b2710d48e72..0efc26f7c5d 100644 --- a/linters/java_pmd/Dockerfile +++ b/linters/java_pmd/Dockerfile @@ -140,7 +140,7 @@ RUN wget --quiet https://github.com/pmd/pmd/releases/download/pmd_releases%2F${P ################################ # Installs python dependencies # ################################ -COPY megalinter /megalinter +COPY --chown=1000:1000 megalinter /megalinter RUN PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py install \ && PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py clean --all \ && rm -rf /var/cache/apk/* \ @@ -149,8 +149,13 @@ RUN PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py install \ ####################################### # Copy scripts and rules to container # ####################################### -COPY megalinter/descriptors /megalinter-descriptors -COPY TEMPLATES /action/lib/.automation +COPY --chown=1000:1000 megalinter/descriptors /megalinter-descriptors +COPY --chown=1000:1000 TEMPLATES /action/lib/.automation + +##################################################### +# Make the container rootless for sake of security. # +##################################################### +USER 1000 ########################### # Get the build arguments # diff --git a/linters/javascript_es/Dockerfile b/linters/javascript_es/Dockerfile index fb808c57281..5c6aba7edb4 100644 --- a/linters/javascript_es/Dockerfile +++ b/linters/javascript_es/Dockerfile @@ -160,7 +160,7 @@ ENV PATH="/node-deps/node_modules/.bin:${PATH}" \ ################################ # Installs python dependencies # ################################ -COPY megalinter /megalinter +COPY --chown=1000:1000 megalinter /megalinter RUN PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py install \ && PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py clean --all \ && rm -rf /var/cache/apk/* \ @@ -169,8 +169,13 @@ RUN PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py install \ ####################################### # Copy scripts and rules to container # ####################################### -COPY megalinter/descriptors /megalinter-descriptors -COPY TEMPLATES /action/lib/.automation +COPY --chown=1000:1000 megalinter/descriptors /megalinter-descriptors +COPY --chown=1000:1000 TEMPLATES /action/lib/.automation + +##################################################### +# Make the container rootless for sake of security. # +##################################################### +USER 1000 ########################### # Get the build arguments # diff --git a/linters/javascript_prettier/Dockerfile b/linters/javascript_prettier/Dockerfile index a905e916822..a4639810fb1 100644 --- a/linters/javascript_prettier/Dockerfile +++ b/linters/javascript_prettier/Dockerfile @@ -148,7 +148,7 @@ ENV PATH="/node-deps/node_modules/.bin:${PATH}" \ ################################ # Installs python dependencies # ################################ -COPY megalinter /megalinter +COPY --chown=1000:1000 megalinter /megalinter RUN PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py install \ && PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py clean --all \ && rm -rf /var/cache/apk/* \ @@ -157,8 +157,13 @@ RUN PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py install \ ####################################### # Copy scripts and rules to container # ####################################### -COPY megalinter/descriptors /megalinter-descriptors -COPY TEMPLATES /action/lib/.automation +COPY --chown=1000:1000 megalinter/descriptors /megalinter-descriptors +COPY --chown=1000:1000 TEMPLATES /action/lib/.automation + +##################################################### +# Make the container rootless for sake of security. # +##################################################### +USER 1000 ########################### # Get the build arguments # diff --git a/linters/javascript_standard/Dockerfile b/linters/javascript_standard/Dockerfile index d30a74b7a35..c236f4f88c2 100644 --- a/linters/javascript_standard/Dockerfile +++ b/linters/javascript_standard/Dockerfile @@ -148,7 +148,7 @@ ENV PATH="/node-deps/node_modules/.bin:${PATH}" \ ################################ # Installs python dependencies # ################################ -COPY megalinter /megalinter +COPY --chown=1000:1000 megalinter /megalinter RUN PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py install \ && PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py clean --all \ && rm -rf /var/cache/apk/* \ @@ -157,8 +157,13 @@ RUN PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py install \ ####################################### # Copy scripts and rules to container # ####################################### -COPY megalinter/descriptors /megalinter-descriptors -COPY TEMPLATES /action/lib/.automation +COPY --chown=1000:1000 megalinter/descriptors /megalinter-descriptors +COPY --chown=1000:1000 TEMPLATES /action/lib/.automation + +##################################################### +# Make the container rootless for sake of security. # +##################################################### +USER 1000 ########################### # Get the build arguments # diff --git a/linters/json_eslint_plugin_jsonc/Dockerfile b/linters/json_eslint_plugin_jsonc/Dockerfile index 14d9ff94e2b..7fda5a3d4cc 100644 --- a/linters/json_eslint_plugin_jsonc/Dockerfile +++ b/linters/json_eslint_plugin_jsonc/Dockerfile @@ -150,7 +150,7 @@ ENV PATH="/node-deps/node_modules/.bin:${PATH}" \ ################################ # Installs python dependencies # ################################ -COPY megalinter /megalinter +COPY --chown=1000:1000 megalinter /megalinter RUN PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py install \ && PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py clean --all \ && rm -rf /var/cache/apk/* \ @@ -159,8 +159,13 @@ RUN PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py install \ ####################################### # Copy scripts and rules to container # ####################################### -COPY megalinter/descriptors /megalinter-descriptors -COPY TEMPLATES /action/lib/.automation +COPY --chown=1000:1000 megalinter/descriptors /megalinter-descriptors +COPY --chown=1000:1000 TEMPLATES /action/lib/.automation + +##################################################### +# Make the container rootless for sake of security. # +##################################################### +USER 1000 ########################### # Get the build arguments # diff --git a/linters/json_jsonlint/Dockerfile b/linters/json_jsonlint/Dockerfile index 00b5f66395e..999615ef9be 100644 --- a/linters/json_jsonlint/Dockerfile +++ b/linters/json_jsonlint/Dockerfile @@ -148,7 +148,7 @@ ENV PATH="/node-deps/node_modules/.bin:${PATH}" \ ################################ # Installs python dependencies # ################################ -COPY megalinter /megalinter +COPY --chown=1000:1000 megalinter /megalinter RUN PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py install \ && PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py clean --all \ && rm -rf /var/cache/apk/* \ @@ -157,8 +157,13 @@ RUN PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py install \ ####################################### # Copy scripts and rules to container # ####################################### -COPY megalinter/descriptors /megalinter-descriptors -COPY TEMPLATES /action/lib/.automation +COPY --chown=1000:1000 megalinter/descriptors /megalinter-descriptors +COPY --chown=1000:1000 TEMPLATES /action/lib/.automation + +##################################################### +# Make the container rootless for sake of security. # +##################################################### +USER 1000 ########################### # Get the build arguments # diff --git a/linters/json_npm_package_json_lint/Dockerfile b/linters/json_npm_package_json_lint/Dockerfile index ee206235af9..6afa957d782 100644 --- a/linters/json_npm_package_json_lint/Dockerfile +++ b/linters/json_npm_package_json_lint/Dockerfile @@ -149,7 +149,7 @@ ENV PATH="/node-deps/node_modules/.bin:${PATH}" \ ################################ # Installs python dependencies # ################################ -COPY megalinter /megalinter +COPY --chown=1000:1000 megalinter /megalinter RUN PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py install \ && PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py clean --all \ && rm -rf /var/cache/apk/* \ @@ -158,8 +158,13 @@ RUN PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py install \ ####################################### # Copy scripts and rules to container # ####################################### -COPY megalinter/descriptors /megalinter-descriptors -COPY TEMPLATES /action/lib/.automation +COPY --chown=1000:1000 megalinter/descriptors /megalinter-descriptors +COPY --chown=1000:1000 TEMPLATES /action/lib/.automation + +##################################################### +# Make the container rootless for sake of security. # +##################################################### +USER 1000 ########################### # Get the build arguments # diff --git a/linters/json_prettier/Dockerfile b/linters/json_prettier/Dockerfile index 15b3092d4bc..343cc61f798 100644 --- a/linters/json_prettier/Dockerfile +++ b/linters/json_prettier/Dockerfile @@ -148,7 +148,7 @@ ENV PATH="/node-deps/node_modules/.bin:${PATH}" \ ################################ # Installs python dependencies # ################################ -COPY megalinter /megalinter +COPY --chown=1000:1000 megalinter /megalinter RUN PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py install \ && PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py clean --all \ && rm -rf /var/cache/apk/* \ @@ -157,8 +157,13 @@ RUN PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py install \ ####################################### # Copy scripts and rules to container # ####################################### -COPY megalinter/descriptors /megalinter-descriptors -COPY TEMPLATES /action/lib/.automation +COPY --chown=1000:1000 megalinter/descriptors /megalinter-descriptors +COPY --chown=1000:1000 TEMPLATES /action/lib/.automation + +##################################################### +# Make the container rootless for sake of security. # +##################################################### +USER 1000 ########################### # Get the build arguments # diff --git a/linters/json_v8r/Dockerfile b/linters/json_v8r/Dockerfile index 376522a347e..57bb3a5b001 100644 --- a/linters/json_v8r/Dockerfile +++ b/linters/json_v8r/Dockerfile @@ -148,7 +148,7 @@ ENV PATH="/node-deps/node_modules/.bin:${PATH}" \ ################################ # Installs python dependencies # ################################ -COPY megalinter /megalinter +COPY --chown=1000:1000 megalinter /megalinter RUN PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py install \ && PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py clean --all \ && rm -rf /var/cache/apk/* \ @@ -157,8 +157,13 @@ RUN PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py install \ ####################################### # Copy scripts and rules to container # ####################################### -COPY megalinter/descriptors /megalinter-descriptors -COPY TEMPLATES /action/lib/.automation +COPY --chown=1000:1000 megalinter/descriptors /megalinter-descriptors +COPY --chown=1000:1000 TEMPLATES /action/lib/.automation + +##################################################### +# Make the container rootless for sake of security. # +##################################################### +USER 1000 ########################### # Get the build arguments # diff --git a/linters/jsx_eslint/Dockerfile b/linters/jsx_eslint/Dockerfile index 7d209df465e..68964a1f791 100644 --- a/linters/jsx_eslint/Dockerfile +++ b/linters/jsx_eslint/Dockerfile @@ -151,7 +151,7 @@ ENV PATH="/node-deps/node_modules/.bin:${PATH}" \ ################################ # Installs python dependencies # ################################ -COPY megalinter /megalinter +COPY --chown=1000:1000 megalinter /megalinter RUN PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py install \ && PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py clean --all \ && rm -rf /var/cache/apk/* \ @@ -160,8 +160,13 @@ RUN PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py install \ ####################################### # Copy scripts and rules to container # ####################################### -COPY megalinter/descriptors /megalinter-descriptors -COPY TEMPLATES /action/lib/.automation +COPY --chown=1000:1000 megalinter/descriptors /megalinter-descriptors +COPY --chown=1000:1000 TEMPLATES /action/lib/.automation + +##################################################### +# Make the container rootless for sake of security. # +##################################################### +USER 1000 ########################### # Get the build arguments # diff --git a/linters/kotlin_ktlint/Dockerfile b/linters/kotlin_ktlint/Dockerfile index 87f2451951a..0b5708785df 100644 --- a/linters/kotlin_ktlint/Dockerfile +++ b/linters/kotlin_ktlint/Dockerfile @@ -134,7 +134,7 @@ RUN curl --retry 5 --retry-delay 5 -sSLO https://github.com/pinterest/ktlint/rel ################################ # Installs python dependencies # ################################ -COPY megalinter /megalinter +COPY --chown=1000:1000 megalinter /megalinter RUN PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py install \ && PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py clean --all \ && rm -rf /var/cache/apk/* \ @@ -143,8 +143,13 @@ RUN PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py install \ ####################################### # Copy scripts and rules to container # ####################################### -COPY megalinter/descriptors /megalinter-descriptors -COPY TEMPLATES /action/lib/.automation +COPY --chown=1000:1000 megalinter/descriptors /megalinter-descriptors +COPY --chown=1000:1000 TEMPLATES /action/lib/.automation + +##################################################### +# Make the container rootless for sake of security. # +##################################################### +USER 1000 ########################### # Get the build arguments # diff --git a/linters/kubernetes_helm/Dockerfile b/linters/kubernetes_helm/Dockerfile index e5819c29d08..e268c4f87e7 100644 --- a/linters/kubernetes_helm/Dockerfile +++ b/linters/kubernetes_helm/Dockerfile @@ -129,7 +129,7 @@ ENV PATH="/node-deps/node_modules/.bin:${PATH}" \ ################################ # Installs python dependencies # ################################ -COPY megalinter /megalinter +COPY --chown=1000:1000 megalinter /megalinter RUN PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py install \ && PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py clean --all \ && rm -rf /var/cache/apk/* \ @@ -138,8 +138,13 @@ RUN PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py install \ ####################################### # Copy scripts and rules to container # ####################################### -COPY megalinter/descriptors /megalinter-descriptors -COPY TEMPLATES /action/lib/.automation +COPY --chown=1000:1000 megalinter/descriptors /megalinter-descriptors +COPY --chown=1000:1000 TEMPLATES /action/lib/.automation + +##################################################### +# Make the container rootless for sake of security. # +##################################################### +USER 1000 ########################### # Get the build arguments # diff --git a/linters/kubernetes_kubeconform/Dockerfile b/linters/kubernetes_kubeconform/Dockerfile index 62a3a47f567..96cd579192d 100644 --- a/linters/kubernetes_kubeconform/Dockerfile +++ b/linters/kubernetes_kubeconform/Dockerfile @@ -138,7 +138,7 @@ RUN ML_THIRD_PARTY_DIR="/third-party/kubeconform" \ ################################ # Installs python dependencies # ################################ -COPY megalinter /megalinter +COPY --chown=1000:1000 megalinter /megalinter RUN PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py install \ && PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py clean --all \ && rm -rf /var/cache/apk/* \ @@ -147,8 +147,13 @@ RUN PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py install \ ####################################### # Copy scripts and rules to container # ####################################### -COPY megalinter/descriptors /megalinter-descriptors -COPY TEMPLATES /action/lib/.automation +COPY --chown=1000:1000 megalinter/descriptors /megalinter-descriptors +COPY --chown=1000:1000 TEMPLATES /action/lib/.automation + +##################################################### +# Make the container rootless for sake of security. # +##################################################### +USER 1000 ########################### # Get the build arguments # diff --git a/linters/kubernetes_kubeval/Dockerfile b/linters/kubernetes_kubeval/Dockerfile index 21c3738f0a0..d92de9c9e7a 100644 --- a/linters/kubernetes_kubeval/Dockerfile +++ b/linters/kubernetes_kubeval/Dockerfile @@ -137,7 +137,7 @@ RUN ML_THIRD_PARTY_DIR="/third-party/kubeval" \ ################################ # Installs python dependencies # ################################ -COPY megalinter /megalinter +COPY --chown=1000:1000 megalinter /megalinter RUN PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py install \ && PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py clean --all \ && rm -rf /var/cache/apk/* \ @@ -146,8 +146,13 @@ RUN PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py install \ ####################################### # Copy scripts and rules to container # ####################################### -COPY megalinter/descriptors /megalinter-descriptors -COPY TEMPLATES /action/lib/.automation +COPY --chown=1000:1000 megalinter/descriptors /megalinter-descriptors +COPY --chown=1000:1000 TEMPLATES /action/lib/.automation + +##################################################### +# Make the container rootless for sake of security. # +##################################################### +USER 1000 ########################### # Get the build arguments # diff --git a/linters/latex_chktex/Dockerfile b/linters/latex_chktex/Dockerfile index e8e13a7abf4..8433b389cb0 100644 --- a/linters/latex_chktex/Dockerfile +++ b/linters/latex_chktex/Dockerfile @@ -131,7 +131,7 @@ RUN cd ~ && touch .chktexrc && cd / ################################ # Installs python dependencies # ################################ -COPY megalinter /megalinter +COPY --chown=1000:1000 megalinter /megalinter RUN PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py install \ && PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py clean --all \ && rm -rf /var/cache/apk/* \ @@ -140,8 +140,13 @@ RUN PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py install \ ####################################### # Copy scripts and rules to container # ####################################### -COPY megalinter/descriptors /megalinter-descriptors -COPY TEMPLATES /action/lib/.automation +COPY --chown=1000:1000 megalinter/descriptors /megalinter-descriptors +COPY --chown=1000:1000 TEMPLATES /action/lib/.automation + +##################################################### +# Make the container rootless for sake of security. # +##################################################### +USER 1000 ########################### # Get the build arguments # diff --git a/linters/lua_luacheck/Dockerfile b/linters/lua_luacheck/Dockerfile index c3c94977b26..eaf32990eb5 100644 --- a/linters/lua_luacheck/Dockerfile +++ b/linters/lua_luacheck/Dockerfile @@ -145,7 +145,7 @@ RUN wget --tries=5 https://www.lua.org/ftp/lua-5.3.5.tar.gz -O - -q | tar -xzf - ################################ # Installs python dependencies # ################################ -COPY megalinter /megalinter +COPY --chown=1000:1000 megalinter /megalinter RUN PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py install \ && PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py clean --all \ && rm -rf /var/cache/apk/* \ @@ -154,8 +154,13 @@ RUN PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py install \ ####################################### # Copy scripts and rules to container # ####################################### -COPY megalinter/descriptors /megalinter-descriptors -COPY TEMPLATES /action/lib/.automation +COPY --chown=1000:1000 megalinter/descriptors /megalinter-descriptors +COPY --chown=1000:1000 TEMPLATES /action/lib/.automation + +##################################################### +# Make the container rootless for sake of security. # +##################################################### +USER 1000 ########################### # Get the build arguments # diff --git a/linters/makefile_checkmake/Dockerfile b/linters/makefile_checkmake/Dockerfile index e10f2fe4434..9a5dfec1f17 100644 --- a/linters/makefile_checkmake/Dockerfile +++ b/linters/makefile_checkmake/Dockerfile @@ -130,7 +130,7 @@ COPY --link --from=checkmake /checkmake /usr/bin/checkmake ################################ # Installs python dependencies # ################################ -COPY megalinter /megalinter +COPY --chown=1000:1000 megalinter /megalinter RUN PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py install \ && PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py clean --all \ && rm -rf /var/cache/apk/* \ @@ -139,8 +139,13 @@ RUN PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py install \ ####################################### # Copy scripts and rules to container # ####################################### -COPY megalinter/descriptors /megalinter-descriptors -COPY TEMPLATES /action/lib/.automation +COPY --chown=1000:1000 megalinter/descriptors /megalinter-descriptors +COPY --chown=1000:1000 TEMPLATES /action/lib/.automation + +##################################################### +# Make the container rootless for sake of security. # +##################################################### +USER 1000 ########################### # Get the build arguments # diff --git a/linters/markdown_markdown_link_check/Dockerfile b/linters/markdown_markdown_link_check/Dockerfile index 193b3651239..3fb287f3fe3 100644 --- a/linters/markdown_markdown_link_check/Dockerfile +++ b/linters/markdown_markdown_link_check/Dockerfile @@ -148,7 +148,7 @@ ENV PATH="/node-deps/node_modules/.bin:${PATH}" \ ################################ # Installs python dependencies # ################################ -COPY megalinter /megalinter +COPY --chown=1000:1000 megalinter /megalinter RUN PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py install \ && PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py clean --all \ && rm -rf /var/cache/apk/* \ @@ -157,8 +157,13 @@ RUN PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py install \ ####################################### # Copy scripts and rules to container # ####################################### -COPY megalinter/descriptors /megalinter-descriptors -COPY TEMPLATES /action/lib/.automation +COPY --chown=1000:1000 megalinter/descriptors /megalinter-descriptors +COPY --chown=1000:1000 TEMPLATES /action/lib/.automation + +##################################################### +# Make the container rootless for sake of security. # +##################################################### +USER 1000 ########################### # Get the build arguments # diff --git a/linters/markdown_markdown_table_formatter/Dockerfile b/linters/markdown_markdown_table_formatter/Dockerfile index 9968d26b557..147424df387 100644 --- a/linters/markdown_markdown_table_formatter/Dockerfile +++ b/linters/markdown_markdown_table_formatter/Dockerfile @@ -148,7 +148,7 @@ ENV PATH="/node-deps/node_modules/.bin:${PATH}" \ ################################ # Installs python dependencies # ################################ -COPY megalinter /megalinter +COPY --chown=1000:1000 megalinter /megalinter RUN PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py install \ && PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py clean --all \ && rm -rf /var/cache/apk/* \ @@ -157,8 +157,13 @@ RUN PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py install \ ####################################### # Copy scripts and rules to container # ####################################### -COPY megalinter/descriptors /megalinter-descriptors -COPY TEMPLATES /action/lib/.automation +COPY --chown=1000:1000 megalinter/descriptors /megalinter-descriptors +COPY --chown=1000:1000 TEMPLATES /action/lib/.automation + +##################################################### +# Make the container rootless for sake of security. # +##################################################### +USER 1000 ########################### # Get the build arguments # diff --git a/linters/markdown_markdownlint/Dockerfile b/linters/markdown_markdownlint/Dockerfile index cba37ac794b..2acbf6acc6b 100644 --- a/linters/markdown_markdownlint/Dockerfile +++ b/linters/markdown_markdownlint/Dockerfile @@ -148,7 +148,7 @@ ENV PATH="/node-deps/node_modules/.bin:${PATH}" \ ################################ # Installs python dependencies # ################################ -COPY megalinter /megalinter +COPY --chown=1000:1000 megalinter /megalinter RUN PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py install \ && PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py clean --all \ && rm -rf /var/cache/apk/* \ @@ -157,8 +157,13 @@ RUN PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py install \ ####################################### # Copy scripts and rules to container # ####################################### -COPY megalinter/descriptors /megalinter-descriptors -COPY TEMPLATES /action/lib/.automation +COPY --chown=1000:1000 megalinter/descriptors /megalinter-descriptors +COPY --chown=1000:1000 TEMPLATES /action/lib/.automation + +##################################################### +# Make the container rootless for sake of security. # +##################################################### +USER 1000 ########################### # Get the build arguments # diff --git a/linters/markdown_remark_lint/Dockerfile b/linters/markdown_remark_lint/Dockerfile index dcc1492fb2c..79acc0d89dc 100644 --- a/linters/markdown_remark_lint/Dockerfile +++ b/linters/markdown_remark_lint/Dockerfile @@ -149,7 +149,7 @@ ENV PATH="/node-deps/node_modules/.bin:${PATH}" \ ################################ # Installs python dependencies # ################################ -COPY megalinter /megalinter +COPY --chown=1000:1000 megalinter /megalinter RUN PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py install \ && PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py clean --all \ && rm -rf /var/cache/apk/* \ @@ -158,8 +158,13 @@ RUN PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py install \ ####################################### # Copy scripts and rules to container # ####################################### -COPY megalinter/descriptors /megalinter-descriptors -COPY TEMPLATES /action/lib/.automation +COPY --chown=1000:1000 megalinter/descriptors /megalinter-descriptors +COPY --chown=1000:1000 TEMPLATES /action/lib/.automation + +##################################################### +# Make the container rootless for sake of security. # +##################################################### +USER 1000 ########################### # Get the build arguments # diff --git a/linters/openapi_spectral/Dockerfile b/linters/openapi_spectral/Dockerfile index 8323bde1b54..e6a4cd61cef 100644 --- a/linters/openapi_spectral/Dockerfile +++ b/linters/openapi_spectral/Dockerfile @@ -148,7 +148,7 @@ ENV PATH="/node-deps/node_modules/.bin:${PATH}" \ ################################ # Installs python dependencies # ################################ -COPY megalinter /megalinter +COPY --chown=1000:1000 megalinter /megalinter RUN PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py install \ && PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py clean --all \ && rm -rf /var/cache/apk/* \ @@ -157,8 +157,13 @@ RUN PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py install \ ####################################### # Copy scripts and rules to container # ####################################### -COPY megalinter/descriptors /megalinter-descriptors -COPY TEMPLATES /action/lib/.automation +COPY --chown=1000:1000 megalinter/descriptors /megalinter-descriptors +COPY --chown=1000:1000 TEMPLATES /action/lib/.automation + +##################################################### +# Make the container rootless for sake of security. # +##################################################### +USER 1000 ########################### # Get the build arguments # diff --git a/linters/perl_perlcritic/Dockerfile b/linters/perl_perlcritic/Dockerfile index 62efa3c18e8..e996e058406 100644 --- a/linters/perl_perlcritic/Dockerfile +++ b/linters/perl_perlcritic/Dockerfile @@ -132,7 +132,7 @@ RUN curl --retry 5 --retry-delay 5 -sL https://cpanmin.us/ | perl - -nq --no-wge ################################ # Installs python dependencies # ################################ -COPY megalinter /megalinter +COPY --chown=1000:1000 megalinter /megalinter RUN PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py install \ && PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py clean --all \ && rm -rf /var/cache/apk/* \ @@ -141,8 +141,13 @@ RUN PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py install \ ####################################### # Copy scripts and rules to container # ####################################### -COPY megalinter/descriptors /megalinter-descriptors -COPY TEMPLATES /action/lib/.automation +COPY --chown=1000:1000 megalinter/descriptors /megalinter-descriptors +COPY --chown=1000:1000 TEMPLATES /action/lib/.automation + +##################################################### +# Make the container rootless for sake of security. # +##################################################### +USER 1000 ########################### # Get the build arguments # diff --git a/linters/php_phpcs/Dockerfile b/linters/php_phpcs/Dockerfile index 929b6c149d5..88d33694c33 100644 --- a/linters/php_phpcs/Dockerfile +++ b/linters/php_phpcs/Dockerfile @@ -161,7 +161,7 @@ RUN --mount=type=secret,id=GITHUB_TOKEN GITHUB_AUTH_TOKEN="$(cat /run/secrets/GI ################################ # Installs python dependencies # ################################ -COPY megalinter /megalinter +COPY --chown=1000:1000 megalinter /megalinter RUN PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py install \ && PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py clean --all \ && rm -rf /var/cache/apk/* \ @@ -170,8 +170,13 @@ RUN PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py install \ ####################################### # Copy scripts and rules to container # ####################################### -COPY megalinter/descriptors /megalinter-descriptors -COPY TEMPLATES /action/lib/.automation +COPY --chown=1000:1000 megalinter/descriptors /megalinter-descriptors +COPY --chown=1000:1000 TEMPLATES /action/lib/.automation + +##################################################### +# Make the container rootless for sake of security. # +##################################################### +USER 1000 ########################### # Get the build arguments # diff --git a/linters/php_phplint/Dockerfile b/linters/php_phplint/Dockerfile index ff962b2fa72..ca0920e07df 100644 --- a/linters/php_phplint/Dockerfile +++ b/linters/php_phplint/Dockerfile @@ -162,7 +162,7 @@ RUN composer global require --ignore-platform-reqs overtrue/phplint ^5.3 \ ################################ # Installs python dependencies # ################################ -COPY megalinter /megalinter +COPY --chown=1000:1000 megalinter /megalinter RUN PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py install \ && PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py clean --all \ && rm -rf /var/cache/apk/* \ @@ -171,8 +171,13 @@ RUN PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py install \ ####################################### # Copy scripts and rules to container # ####################################### -COPY megalinter/descriptors /megalinter-descriptors -COPY TEMPLATES /action/lib/.automation +COPY --chown=1000:1000 megalinter/descriptors /megalinter-descriptors +COPY --chown=1000:1000 TEMPLATES /action/lib/.automation + +##################################################### +# Make the container rootless for sake of security. # +##################################################### +USER 1000 ########################### # Get the build arguments # diff --git a/linters/php_phpstan/Dockerfile b/linters/php_phpstan/Dockerfile index 72787475575..37d833d1952 100644 --- a/linters/php_phpstan/Dockerfile +++ b/linters/php_phpstan/Dockerfile @@ -161,7 +161,7 @@ RUN chmod +x /usr/bin/phpstan ################################ # Installs python dependencies # ################################ -COPY megalinter /megalinter +COPY --chown=1000:1000 megalinter /megalinter RUN PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py install \ && PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py clean --all \ && rm -rf /var/cache/apk/* \ @@ -170,8 +170,13 @@ RUN PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py install \ ####################################### # Copy scripts and rules to container # ####################################### -COPY megalinter/descriptors /megalinter-descriptors -COPY TEMPLATES /action/lib/.automation +COPY --chown=1000:1000 megalinter/descriptors /megalinter-descriptors +COPY --chown=1000:1000 TEMPLATES /action/lib/.automation + +##################################################### +# Make the container rootless for sake of security. # +##################################################### +USER 1000 ########################### # Get the build arguments # diff --git a/linters/php_psalm/Dockerfile b/linters/php_psalm/Dockerfile index 11c1b3f8176..edee2036a42 100644 --- a/linters/php_psalm/Dockerfile +++ b/linters/php_psalm/Dockerfile @@ -161,7 +161,7 @@ RUN --mount=type=secret,id=GITHUB_TOKEN GITHUB_AUTH_TOKEN="$(cat /run/secrets/GI ################################ # Installs python dependencies # ################################ -COPY megalinter /megalinter +COPY --chown=1000:1000 megalinter /megalinter RUN PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py install \ && PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py clean --all \ && rm -rf /var/cache/apk/* \ @@ -170,8 +170,13 @@ RUN PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py install \ ####################################### # Copy scripts and rules to container # ####################################### -COPY megalinter/descriptors /megalinter-descriptors -COPY TEMPLATES /action/lib/.automation +COPY --chown=1000:1000 megalinter/descriptors /megalinter-descriptors +COPY --chown=1000:1000 TEMPLATES /action/lib/.automation + +##################################################### +# Make the container rootless for sake of security. # +##################################################### +USER 1000 ########################### # Get the build arguments # diff --git a/linters/powershell_powershell/Dockerfile b/linters/powershell_powershell/Dockerfile index 3a6bfe8abcb..8c4e83feca3 100644 --- a/linters/powershell_powershell/Dockerfile +++ b/linters/powershell_powershell/Dockerfile @@ -148,7 +148,7 @@ RUN pwsh -c 'Install-Module -Name PSScriptAnalyzer -RequiredVersion ${PSSA_VERSI ################################ # Installs python dependencies # ################################ -COPY megalinter /megalinter +COPY --chown=1000:1000 megalinter /megalinter RUN PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py install \ && PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py clean --all \ && rm -rf /var/cache/apk/* \ @@ -157,8 +157,13 @@ RUN PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py install \ ####################################### # Copy scripts and rules to container # ####################################### -COPY megalinter/descriptors /megalinter-descriptors -COPY TEMPLATES /action/lib/.automation +COPY --chown=1000:1000 megalinter/descriptors /megalinter-descriptors +COPY --chown=1000:1000 TEMPLATES /action/lib/.automation + +##################################################### +# Make the container rootless for sake of security. # +##################################################### +USER 1000 ########################### # Get the build arguments # diff --git a/linters/powershell_powershell_formatter/Dockerfile b/linters/powershell_powershell_formatter/Dockerfile index cd6bfbb8308..746ded0a59d 100644 --- a/linters/powershell_powershell_formatter/Dockerfile +++ b/linters/powershell_powershell_formatter/Dockerfile @@ -148,7 +148,7 @@ RUN pwsh -c 'Install-Module -Name PSScriptAnalyzer -RequiredVersion ${PSSA_VERSI ################################ # Installs python dependencies # ################################ -COPY megalinter /megalinter +COPY --chown=1000:1000 megalinter /megalinter RUN PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py install \ && PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py clean --all \ && rm -rf /var/cache/apk/* \ @@ -157,8 +157,13 @@ RUN PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py install \ ####################################### # Copy scripts and rules to container # ####################################### -COPY megalinter/descriptors /megalinter-descriptors -COPY TEMPLATES /action/lib/.automation +COPY --chown=1000:1000 megalinter/descriptors /megalinter-descriptors +COPY --chown=1000:1000 TEMPLATES /action/lib/.automation + +##################################################### +# Make the container rootless for sake of security. # +##################################################### +USER 1000 ########################### # Get the build arguments # diff --git a/linters/protobuf_protolint/Dockerfile b/linters/protobuf_protolint/Dockerfile index 4775e6399de..c30a53861f8 100644 --- a/linters/protobuf_protolint/Dockerfile +++ b/linters/protobuf_protolint/Dockerfile @@ -130,7 +130,7 @@ COPY --link --from=protolint /usr/local/bin/protolint /usr/bin/ ################################ # Installs python dependencies # ################################ -COPY megalinter /megalinter +COPY --chown=1000:1000 megalinter /megalinter RUN PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py install \ && PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py clean --all \ && rm -rf /var/cache/apk/* \ @@ -139,8 +139,13 @@ RUN PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py install \ ####################################### # Copy scripts and rules to container # ####################################### -COPY megalinter/descriptors /megalinter-descriptors -COPY TEMPLATES /action/lib/.automation +COPY --chown=1000:1000 megalinter/descriptors /megalinter-descriptors +COPY --chown=1000:1000 TEMPLATES /action/lib/.automation + +##################################################### +# Make the container rootless for sake of security. # +##################################################### +USER 1000 ########################### # Get the build arguments # diff --git a/linters/puppet_puppet_lint/Dockerfile b/linters/puppet_puppet_lint/Dockerfile index 7fb8dae5b87..14cd12af5db 100644 --- a/linters/puppet_puppet_lint/Dockerfile +++ b/linters/puppet_puppet_lint/Dockerfile @@ -134,7 +134,7 @@ RUN echo 'gem: --no-document' >> ~/.gemrc && \ ################################ # Installs python dependencies # ################################ -COPY megalinter /megalinter +COPY --chown=1000:1000 megalinter /megalinter RUN PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py install \ && PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py clean --all \ && rm -rf /var/cache/apk/* \ @@ -143,8 +143,13 @@ RUN PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py install \ ####################################### # Copy scripts and rules to container # ####################################### -COPY megalinter/descriptors /megalinter-descriptors -COPY TEMPLATES /action/lib/.automation +COPY --chown=1000:1000 megalinter/descriptors /megalinter-descriptors +COPY --chown=1000:1000 TEMPLATES /action/lib/.automation + +##################################################### +# Make the container rootless for sake of security. # +##################################################### +USER 1000 ########################### # Get the build arguments # diff --git a/linters/python_bandit/Dockerfile b/linters/python_bandit/Dockerfile index 6ef7248e049..1ed71a3b28f 100644 --- a/linters/python_bandit/Dockerfile +++ b/linters/python_bandit/Dockerfile @@ -131,7 +131,7 @@ ENV PATH="/node-deps/node_modules/.bin:${PATH}" \ ################################ # Installs python dependencies # ################################ -COPY megalinter /megalinter +COPY --chown=1000:1000 megalinter /megalinter RUN PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py install \ && PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py clean --all \ && rm -rf /var/cache/apk/* \ @@ -140,8 +140,13 @@ RUN PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py install \ ####################################### # Copy scripts and rules to container # ####################################### -COPY megalinter/descriptors /megalinter-descriptors -COPY TEMPLATES /action/lib/.automation +COPY --chown=1000:1000 megalinter/descriptors /megalinter-descriptors +COPY --chown=1000:1000 TEMPLATES /action/lib/.automation + +##################################################### +# Make the container rootless for sake of security. # +##################################################### +USER 1000 ########################### # Get the build arguments # diff --git a/linters/python_black/Dockerfile b/linters/python_black/Dockerfile index a52ad8a8201..7468fa054ca 100644 --- a/linters/python_black/Dockerfile +++ b/linters/python_black/Dockerfile @@ -131,7 +131,7 @@ ENV PATH="/node-deps/node_modules/.bin:${PATH}" \ ################################ # Installs python dependencies # ################################ -COPY megalinter /megalinter +COPY --chown=1000:1000 megalinter /megalinter RUN PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py install \ && PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py clean --all \ && rm -rf /var/cache/apk/* \ @@ -140,8 +140,13 @@ RUN PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py install \ ####################################### # Copy scripts and rules to container # ####################################### -COPY megalinter/descriptors /megalinter-descriptors -COPY TEMPLATES /action/lib/.automation +COPY --chown=1000:1000 megalinter/descriptors /megalinter-descriptors +COPY --chown=1000:1000 TEMPLATES /action/lib/.automation + +##################################################### +# Make the container rootless for sake of security. # +##################################################### +USER 1000 ########################### # Get the build arguments # diff --git a/linters/python_flake8/Dockerfile b/linters/python_flake8/Dockerfile index 5b1d6961548..1ae2afec515 100644 --- a/linters/python_flake8/Dockerfile +++ b/linters/python_flake8/Dockerfile @@ -131,7 +131,7 @@ ENV PATH="/node-deps/node_modules/.bin:${PATH}" \ ################################ # Installs python dependencies # ################################ -COPY megalinter /megalinter +COPY --chown=1000:1000 megalinter /megalinter RUN PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py install \ && PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py clean --all \ && rm -rf /var/cache/apk/* \ @@ -140,8 +140,13 @@ RUN PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py install \ ####################################### # Copy scripts and rules to container # ####################################### -COPY megalinter/descriptors /megalinter-descriptors -COPY TEMPLATES /action/lib/.automation +COPY --chown=1000:1000 megalinter/descriptors /megalinter-descriptors +COPY --chown=1000:1000 TEMPLATES /action/lib/.automation + +##################################################### +# Make the container rootless for sake of security. # +##################################################### +USER 1000 ########################### # Get the build arguments # diff --git a/linters/python_isort/Dockerfile b/linters/python_isort/Dockerfile index 833cae1c01c..f35b23c1573 100644 --- a/linters/python_isort/Dockerfile +++ b/linters/python_isort/Dockerfile @@ -131,7 +131,7 @@ ENV PATH="/node-deps/node_modules/.bin:${PATH}" \ ################################ # Installs python dependencies # ################################ -COPY megalinter /megalinter +COPY --chown=1000:1000 megalinter /megalinter RUN PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py install \ && PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py clean --all \ && rm -rf /var/cache/apk/* \ @@ -140,8 +140,13 @@ RUN PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py install \ ####################################### # Copy scripts and rules to container # ####################################### -COPY megalinter/descriptors /megalinter-descriptors -COPY TEMPLATES /action/lib/.automation +COPY --chown=1000:1000 megalinter/descriptors /megalinter-descriptors +COPY --chown=1000:1000 TEMPLATES /action/lib/.automation + +##################################################### +# Make the container rootless for sake of security. # +##################################################### +USER 1000 ########################### # Get the build arguments # diff --git a/linters/python_mypy/Dockerfile b/linters/python_mypy/Dockerfile index ef8676c66b2..de3615575a1 100644 --- a/linters/python_mypy/Dockerfile +++ b/linters/python_mypy/Dockerfile @@ -131,7 +131,7 @@ ENV PATH="/node-deps/node_modules/.bin:${PATH}" \ ################################ # Installs python dependencies # ################################ -COPY megalinter /megalinter +COPY --chown=1000:1000 megalinter /megalinter RUN PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py install \ && PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py clean --all \ && rm -rf /var/cache/apk/* \ @@ -140,8 +140,13 @@ RUN PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py install \ ####################################### # Copy scripts and rules to container # ####################################### -COPY megalinter/descriptors /megalinter-descriptors -COPY TEMPLATES /action/lib/.automation +COPY --chown=1000:1000 megalinter/descriptors /megalinter-descriptors +COPY --chown=1000:1000 TEMPLATES /action/lib/.automation + +##################################################### +# Make the container rootless for sake of security. # +##################################################### +USER 1000 ########################### # Get the build arguments # diff --git a/linters/python_pylint/Dockerfile b/linters/python_pylint/Dockerfile index d1574becaae..bbbad90b2aa 100644 --- a/linters/python_pylint/Dockerfile +++ b/linters/python_pylint/Dockerfile @@ -131,7 +131,7 @@ ENV PATH="/node-deps/node_modules/.bin:${PATH}" \ ################################ # Installs python dependencies # ################################ -COPY megalinter /megalinter +COPY --chown=1000:1000 megalinter /megalinter RUN PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py install \ && PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py clean --all \ && rm -rf /var/cache/apk/* \ @@ -140,8 +140,13 @@ RUN PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py install \ ####################################### # Copy scripts and rules to container # ####################################### -COPY megalinter/descriptors /megalinter-descriptors -COPY TEMPLATES /action/lib/.automation +COPY --chown=1000:1000 megalinter/descriptors /megalinter-descriptors +COPY --chown=1000:1000 TEMPLATES /action/lib/.automation + +##################################################### +# Make the container rootless for sake of security. # +##################################################### +USER 1000 ########################### # Get the build arguments # diff --git a/linters/python_pyright/Dockerfile b/linters/python_pyright/Dockerfile index 38a71f5b8f3..f39fdc90853 100644 --- a/linters/python_pyright/Dockerfile +++ b/linters/python_pyright/Dockerfile @@ -131,7 +131,7 @@ ENV PATH="/node-deps/node_modules/.bin:${PATH}" \ ################################ # Installs python dependencies # ################################ -COPY megalinter /megalinter +COPY --chown=1000:1000 megalinter /megalinter RUN PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py install \ && PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py clean --all \ && rm -rf /var/cache/apk/* \ @@ -140,8 +140,13 @@ RUN PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py install \ ####################################### # Copy scripts and rules to container # ####################################### -COPY megalinter/descriptors /megalinter-descriptors -COPY TEMPLATES /action/lib/.automation +COPY --chown=1000:1000 megalinter/descriptors /megalinter-descriptors +COPY --chown=1000:1000 TEMPLATES /action/lib/.automation + +##################################################### +# Make the container rootless for sake of security. # +##################################################### +USER 1000 ########################### # Get the build arguments # diff --git a/linters/python_ruff/Dockerfile b/linters/python_ruff/Dockerfile index fc70226455c..97dfa83b88e 100644 --- a/linters/python_ruff/Dockerfile +++ b/linters/python_ruff/Dockerfile @@ -131,7 +131,7 @@ ENV PATH="/node-deps/node_modules/.bin:${PATH}" \ ################################ # Installs python dependencies # ################################ -COPY megalinter /megalinter +COPY --chown=1000:1000 megalinter /megalinter RUN PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py install \ && PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py clean --all \ && rm -rf /var/cache/apk/* \ @@ -140,8 +140,13 @@ RUN PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py install \ ####################################### # Copy scripts and rules to container # ####################################### -COPY megalinter/descriptors /megalinter-descriptors -COPY TEMPLATES /action/lib/.automation +COPY --chown=1000:1000 megalinter/descriptors /megalinter-descriptors +COPY --chown=1000:1000 TEMPLATES /action/lib/.automation + +##################################################### +# Make the container rootless for sake of security. # +##################################################### +USER 1000 ########################### # Get the build arguments # diff --git a/linters/r_lintr/Dockerfile b/linters/r_lintr/Dockerfile index 8eff6c4ec17..f2cfa9e99fd 100644 --- a/linters/r_lintr/Dockerfile +++ b/linters/r_lintr/Dockerfile @@ -144,7 +144,7 @@ RUN mkdir -p /home/r-library \ ################################ # Installs python dependencies # ################################ -COPY megalinter /megalinter +COPY --chown=1000:1000 megalinter /megalinter RUN PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py install \ && PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py clean --all \ && rm -rf /var/cache/apk/* \ @@ -153,8 +153,13 @@ RUN PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py install \ ####################################### # Copy scripts and rules to container # ####################################### -COPY megalinter/descriptors /megalinter-descriptors -COPY TEMPLATES /action/lib/.automation +COPY --chown=1000:1000 megalinter/descriptors /megalinter-descriptors +COPY --chown=1000:1000 TEMPLATES /action/lib/.automation + +##################################################### +# Make the container rootless for sake of security. # +##################################################### +USER 1000 ########################### # Get the build arguments # diff --git a/linters/raku_raku/Dockerfile b/linters/raku_raku/Dockerfile index 559fa0b88f6..43345ec5d13 100644 --- a/linters/raku_raku/Dockerfile +++ b/linters/raku_raku/Dockerfile @@ -137,7 +137,7 @@ ENV PATH="~/.raku/bin:/opt/rakudo-pkg/bin:/opt/rakudo-pkg/share/perl6/site/bin:$ ################################ # Installs python dependencies # ################################ -COPY megalinter /megalinter +COPY --chown=1000:1000 megalinter /megalinter RUN PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py install \ && PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py clean --all \ && rm -rf /var/cache/apk/* \ @@ -146,8 +146,13 @@ RUN PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py install \ ####################################### # Copy scripts and rules to container # ####################################### -COPY megalinter/descriptors /megalinter-descriptors -COPY TEMPLATES /action/lib/.automation +COPY --chown=1000:1000 megalinter/descriptors /megalinter-descriptors +COPY --chown=1000:1000 TEMPLATES /action/lib/.automation + +##################################################### +# Make the container rootless for sake of security. # +##################################################### +USER 1000 ########################### # Get the build arguments # diff --git a/linters/repository_checkov/Dockerfile b/linters/repository_checkov/Dockerfile index 94a6ca96452..fb7eb88da7e 100644 --- a/linters/repository_checkov/Dockerfile +++ b/linters/repository_checkov/Dockerfile @@ -131,7 +131,7 @@ ENV PATH="/node-deps/node_modules/.bin:${PATH}" \ ################################ # Installs python dependencies # ################################ -COPY megalinter /megalinter +COPY --chown=1000:1000 megalinter /megalinter RUN PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py install \ && PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py clean --all \ && rm -rf /var/cache/apk/* \ @@ -140,8 +140,13 @@ RUN PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py install \ ####################################### # Copy scripts and rules to container # ####################################### -COPY megalinter/descriptors /megalinter-descriptors -COPY TEMPLATES /action/lib/.automation +COPY --chown=1000:1000 megalinter/descriptors /megalinter-descriptors +COPY --chown=1000:1000 TEMPLATES /action/lib/.automation + +##################################################### +# Make the container rootless for sake of security. # +##################################################### +USER 1000 ########################### # Get the build arguments # diff --git a/linters/repository_devskim/Dockerfile b/linters/repository_devskim/Dockerfile index c231174a3d3..02d4831c85e 100644 --- a/linters/repository_devskim/Dockerfile +++ b/linters/repository_devskim/Dockerfile @@ -143,7 +143,7 @@ RUN dotnet tool install --global Microsoft.CST.DevSkim.CLI --version 0.7.104 ################################ # Installs python dependencies # ################################ -COPY megalinter /megalinter +COPY --chown=1000:1000 megalinter /megalinter RUN PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py install \ && PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py clean --all \ && rm -rf /var/cache/apk/* \ @@ -152,8 +152,13 @@ RUN PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py install \ ####################################### # Copy scripts and rules to container # ####################################### -COPY megalinter/descriptors /megalinter-descriptors -COPY TEMPLATES /action/lib/.automation +COPY --chown=1000:1000 megalinter/descriptors /megalinter-descriptors +COPY --chown=1000:1000 TEMPLATES /action/lib/.automation + +##################################################### +# Make the container rootless for sake of security. # +##################################################### +USER 1000 ########################### # Get the build arguments # diff --git a/linters/repository_dustilock/Dockerfile b/linters/repository_dustilock/Dockerfile index b5886233e52..ef6b650f06c 100644 --- a/linters/repository_dustilock/Dockerfile +++ b/linters/repository_dustilock/Dockerfile @@ -132,7 +132,7 @@ COPY --link --from=dustilock /usr/bin/dustilock /usr/bin/dustilock ################################ # Installs python dependencies # ################################ -COPY megalinter /megalinter +COPY --chown=1000:1000 megalinter /megalinter RUN PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py install \ && PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py clean --all \ && rm -rf /var/cache/apk/* \ @@ -141,8 +141,13 @@ RUN PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py install \ ####################################### # Copy scripts and rules to container # ####################################### -COPY megalinter/descriptors /megalinter-descriptors -COPY TEMPLATES /action/lib/.automation +COPY --chown=1000:1000 megalinter/descriptors /megalinter-descriptors +COPY --chown=1000:1000 TEMPLATES /action/lib/.automation + +##################################################### +# Make the container rootless for sake of security. # +##################################################### +USER 1000 ########################### # Get the build arguments # diff --git a/linters/repository_git_diff/Dockerfile b/linters/repository_git_diff/Dockerfile index 1d85b241ee3..22889446061 100644 --- a/linters/repository_git_diff/Dockerfile +++ b/linters/repository_git_diff/Dockerfile @@ -128,7 +128,7 @@ ENV PATH="/node-deps/node_modules/.bin:${PATH}" \ ################################ # Installs python dependencies # ################################ -COPY megalinter /megalinter +COPY --chown=1000:1000 megalinter /megalinter RUN PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py install \ && PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py clean --all \ && rm -rf /var/cache/apk/* \ @@ -137,8 +137,13 @@ RUN PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py install \ ####################################### # Copy scripts and rules to container # ####################################### -COPY megalinter/descriptors /megalinter-descriptors -COPY TEMPLATES /action/lib/.automation +COPY --chown=1000:1000 megalinter/descriptors /megalinter-descriptors +COPY --chown=1000:1000 TEMPLATES /action/lib/.automation + +##################################################### +# Make the container rootless for sake of security. # +##################################################### +USER 1000 ########################### # Get the build arguments # diff --git a/linters/repository_gitleaks/Dockerfile b/linters/repository_gitleaks/Dockerfile index d0bdf2ffaf5..42cb08f67c0 100644 --- a/linters/repository_gitleaks/Dockerfile +++ b/linters/repository_gitleaks/Dockerfile @@ -130,7 +130,7 @@ COPY --link --from=gitleaks /usr/bin/gitleaks /usr/bin/ ################################ # Installs python dependencies # ################################ -COPY megalinter /megalinter +COPY --chown=1000:1000 megalinter /megalinter RUN PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py install \ && PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py clean --all \ && rm -rf /var/cache/apk/* \ @@ -139,8 +139,13 @@ RUN PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py install \ ####################################### # Copy scripts and rules to container # ####################################### -COPY megalinter/descriptors /megalinter-descriptors -COPY TEMPLATES /action/lib/.automation +COPY --chown=1000:1000 megalinter/descriptors /megalinter-descriptors +COPY --chown=1000:1000 TEMPLATES /action/lib/.automation + +##################################################### +# Make the container rootless for sake of security. # +##################################################### +USER 1000 ########################### # Get the build arguments # diff --git a/linters/repository_goodcheck/Dockerfile b/linters/repository_goodcheck/Dockerfile index 4a27eed011a..4a93145c5ea 100644 --- a/linters/repository_goodcheck/Dockerfile +++ b/linters/repository_goodcheck/Dockerfile @@ -134,7 +134,7 @@ RUN echo 'gem: --no-document' >> ~/.gemrc && \ ################################ # Installs python dependencies # ################################ -COPY megalinter /megalinter +COPY --chown=1000:1000 megalinter /megalinter RUN PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py install \ && PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py clean --all \ && rm -rf /var/cache/apk/* \ @@ -143,8 +143,13 @@ RUN PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py install \ ####################################### # Copy scripts and rules to container # ####################################### -COPY megalinter/descriptors /megalinter-descriptors -COPY TEMPLATES /action/lib/.automation +COPY --chown=1000:1000 megalinter/descriptors /megalinter-descriptors +COPY --chown=1000:1000 TEMPLATES /action/lib/.automation + +##################################################### +# Make the container rootless for sake of security. # +##################################################### +USER 1000 ########################### # Get the build arguments # diff --git a/linters/repository_secretlint/Dockerfile b/linters/repository_secretlint/Dockerfile index c493a2955b9..d29b3ef3cc6 100644 --- a/linters/repository_secretlint/Dockerfile +++ b/linters/repository_secretlint/Dockerfile @@ -150,7 +150,7 @@ ENV PATH="/node-deps/node_modules/.bin:${PATH}" \ ################################ # Installs python dependencies # ################################ -COPY megalinter /megalinter +COPY --chown=1000:1000 megalinter /megalinter RUN PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py install \ && PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py clean --all \ && rm -rf /var/cache/apk/* \ @@ -159,8 +159,13 @@ RUN PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py install \ ####################################### # Copy scripts and rules to container # ####################################### -COPY megalinter/descriptors /megalinter-descriptors -COPY TEMPLATES /action/lib/.automation +COPY --chown=1000:1000 megalinter/descriptors /megalinter-descriptors +COPY --chown=1000:1000 TEMPLATES /action/lib/.automation + +##################################################### +# Make the container rootless for sake of security. # +##################################################### +USER 1000 ########################### # Get the build arguments # diff --git a/linters/repository_semgrep/Dockerfile b/linters/repository_semgrep/Dockerfile index 68a060cecda..0263becafcc 100644 --- a/linters/repository_semgrep/Dockerfile +++ b/linters/repository_semgrep/Dockerfile @@ -131,7 +131,7 @@ ENV PATH="/node-deps/node_modules/.bin:${PATH}" \ ################################ # Installs python dependencies # ################################ -COPY megalinter /megalinter +COPY --chown=1000:1000 megalinter /megalinter RUN PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py install \ && PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py clean --all \ && rm -rf /var/cache/apk/* \ @@ -140,8 +140,13 @@ RUN PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py install \ ####################################### # Copy scripts and rules to container # ####################################### -COPY megalinter/descriptors /megalinter-descriptors -COPY TEMPLATES /action/lib/.automation +COPY --chown=1000:1000 megalinter/descriptors /megalinter-descriptors +COPY --chown=1000:1000 TEMPLATES /action/lib/.automation + +##################################################### +# Make the container rootless for sake of security. # +##################################################### +USER 1000 ########################### # Get the build arguments # diff --git a/linters/repository_syft/Dockerfile b/linters/repository_syft/Dockerfile index e44f6dcb86e..afb98ceadb0 100644 --- a/linters/repository_syft/Dockerfile +++ b/linters/repository_syft/Dockerfile @@ -130,7 +130,7 @@ RUN curl -sSfL https://raw.githubusercontent.com/anchore/syft/main/install.sh | ################################ # Installs python dependencies # ################################ -COPY megalinter /megalinter +COPY --chown=1000:1000 megalinter /megalinter RUN PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py install \ && PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py clean --all \ && rm -rf /var/cache/apk/* \ @@ -139,8 +139,13 @@ RUN PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py install \ ####################################### # Copy scripts and rules to container # ####################################### -COPY megalinter/descriptors /megalinter-descriptors -COPY TEMPLATES /action/lib/.automation +COPY --chown=1000:1000 megalinter/descriptors /megalinter-descriptors +COPY --chown=1000:1000 TEMPLATES /action/lib/.automation + +##################################################### +# Make the container rootless for sake of security. # +##################################################### +USER 1000 ########################### # Get the build arguments # diff --git a/linters/repository_trivy/Dockerfile b/linters/repository_trivy/Dockerfile index c9364812871..b6b471140db 100644 --- a/linters/repository_trivy/Dockerfile +++ b/linters/repository_trivy/Dockerfile @@ -131,7 +131,7 @@ RUN wget --tries=5 -q -O - https://raw.githubusercontent.com/aquasecurity/trivy/ ################################ # Installs python dependencies # ################################ -COPY megalinter /megalinter +COPY --chown=1000:1000 megalinter /megalinter RUN PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py install \ && PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py clean --all \ && rm -rf /var/cache/apk/* \ @@ -140,8 +140,13 @@ RUN PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py install \ ####################################### # Copy scripts and rules to container # ####################################### -COPY megalinter/descriptors /megalinter-descriptors -COPY TEMPLATES /action/lib/.automation +COPY --chown=1000:1000 megalinter/descriptors /megalinter-descriptors +COPY --chown=1000:1000 TEMPLATES /action/lib/.automation + +##################################################### +# Make the container rootless for sake of security. # +##################################################### +USER 1000 ########################### # Get the build arguments # diff --git a/linters/rst_rst_lint/Dockerfile b/linters/rst_rst_lint/Dockerfile index c880e40e577..99ead422ea3 100644 --- a/linters/rst_rst_lint/Dockerfile +++ b/linters/rst_rst_lint/Dockerfile @@ -131,7 +131,7 @@ ENV PATH="/node-deps/node_modules/.bin:${PATH}" \ ################################ # Installs python dependencies # ################################ -COPY megalinter /megalinter +COPY --chown=1000:1000 megalinter /megalinter RUN PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py install \ && PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py clean --all \ && rm -rf /var/cache/apk/* \ @@ -140,8 +140,13 @@ RUN PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py install \ ####################################### # Copy scripts and rules to container # ####################################### -COPY megalinter/descriptors /megalinter-descriptors -COPY TEMPLATES /action/lib/.automation +COPY --chown=1000:1000 megalinter/descriptors /megalinter-descriptors +COPY --chown=1000:1000 TEMPLATES /action/lib/.automation + +##################################################### +# Make the container rootless for sake of security. # +##################################################### +USER 1000 ########################### # Get the build arguments # diff --git a/linters/rst_rstcheck/Dockerfile b/linters/rst_rstcheck/Dockerfile index 8475d12db5a..0141e5905b0 100644 --- a/linters/rst_rstcheck/Dockerfile +++ b/linters/rst_rstcheck/Dockerfile @@ -131,7 +131,7 @@ ENV PATH="/node-deps/node_modules/.bin:${PATH}" \ ################################ # Installs python dependencies # ################################ -COPY megalinter /megalinter +COPY --chown=1000:1000 megalinter /megalinter RUN PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py install \ && PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py clean --all \ && rm -rf /var/cache/apk/* \ @@ -140,8 +140,13 @@ RUN PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py install \ ####################################### # Copy scripts and rules to container # ####################################### -COPY megalinter/descriptors /megalinter-descriptors -COPY TEMPLATES /action/lib/.automation +COPY --chown=1000:1000 megalinter/descriptors /megalinter-descriptors +COPY --chown=1000:1000 TEMPLATES /action/lib/.automation + +##################################################### +# Make the container rootless for sake of security. # +##################################################### +USER 1000 ########################### # Get the build arguments # diff --git a/linters/rst_rstfmt/Dockerfile b/linters/rst_rstfmt/Dockerfile index 1e649ccd505..b59975866d5 100644 --- a/linters/rst_rstfmt/Dockerfile +++ b/linters/rst_rstfmt/Dockerfile @@ -131,7 +131,7 @@ ENV PATH="/node-deps/node_modules/.bin:${PATH}" \ ################################ # Installs python dependencies # ################################ -COPY megalinter /megalinter +COPY --chown=1000:1000 megalinter /megalinter RUN PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py install \ && PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py clean --all \ && rm -rf /var/cache/apk/* \ @@ -140,8 +140,13 @@ RUN PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py install \ ####################################### # Copy scripts and rules to container # ####################################### -COPY megalinter/descriptors /megalinter-descriptors -COPY TEMPLATES /action/lib/.automation +COPY --chown=1000:1000 megalinter/descriptors /megalinter-descriptors +COPY --chown=1000:1000 TEMPLATES /action/lib/.automation + +##################################################### +# Make the container rootless for sake of security. # +##################################################### +USER 1000 ########################### # Get the build arguments # diff --git a/linters/ruby_rubocop/Dockerfile b/linters/ruby_rubocop/Dockerfile index 77706ce90ae..7fd18cc0a98 100644 --- a/linters/ruby_rubocop/Dockerfile +++ b/linters/ruby_rubocop/Dockerfile @@ -139,7 +139,7 @@ RUN echo 'gem: --no-document' >> ~/.gemrc && \ ################################ # Installs python dependencies # ################################ -COPY megalinter /megalinter +COPY --chown=1000:1000 megalinter /megalinter RUN PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py install \ && PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py clean --all \ && rm -rf /var/cache/apk/* \ @@ -148,8 +148,13 @@ RUN PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py install \ ####################################### # Copy scripts and rules to container # ####################################### -COPY megalinter/descriptors /megalinter-descriptors -COPY TEMPLATES /action/lib/.automation +COPY --chown=1000:1000 megalinter/descriptors /megalinter-descriptors +COPY --chown=1000:1000 TEMPLATES /action/lib/.automation + +##################################################### +# Make the container rootless for sake of security. # +##################################################### +USER 1000 ########################### # Get the build arguments # diff --git a/linters/rust_clippy/Dockerfile b/linters/rust_clippy/Dockerfile index 9e238117ce7..7b6ecb8cdfc 100644 --- a/linters/rust_clippy/Dockerfile +++ b/linters/rust_clippy/Dockerfile @@ -132,7 +132,7 @@ ENV PATH="/root/.cargo/bin:${PATH}" ################################ # Installs python dependencies # ################################ -COPY megalinter /megalinter +COPY --chown=1000:1000 megalinter /megalinter RUN PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py install \ && PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py clean --all \ && rm -rf /var/cache/apk/* \ @@ -141,8 +141,13 @@ RUN PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py install \ ####################################### # Copy scripts and rules to container # ####################################### -COPY megalinter/descriptors /megalinter-descriptors -COPY TEMPLATES /action/lib/.automation +COPY --chown=1000:1000 megalinter/descriptors /megalinter-descriptors +COPY --chown=1000:1000 TEMPLATES /action/lib/.automation + +##################################################### +# Make the container rootless for sake of security. # +##################################################### +USER 1000 ########################### # Get the build arguments # diff --git a/linters/salesforce_sfdx_scanner_apex/Dockerfile b/linters/salesforce_sfdx_scanner_apex/Dockerfile index a634e95d8b7..1346ba050b7 100644 --- a/linters/salesforce_sfdx_scanner_apex/Dockerfile +++ b/linters/salesforce_sfdx_scanner_apex/Dockerfile @@ -161,7 +161,7 @@ RUN echo y|sfdx plugins:install sfdx-hardis \ ################################ # Installs python dependencies # ################################ -COPY megalinter /megalinter +COPY --chown=1000:1000 megalinter /megalinter RUN PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py install \ && PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py clean --all \ && rm -rf /var/cache/apk/* \ @@ -170,8 +170,13 @@ RUN PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py install \ ####################################### # Copy scripts and rules to container # ####################################### -COPY megalinter/descriptors /megalinter-descriptors -COPY TEMPLATES /action/lib/.automation +COPY --chown=1000:1000 megalinter/descriptors /megalinter-descriptors +COPY --chown=1000:1000 TEMPLATES /action/lib/.automation + +##################################################### +# Make the container rootless for sake of security. # +##################################################### +USER 1000 ########################### # Get the build arguments # diff --git a/linters/salesforce_sfdx_scanner_aura/Dockerfile b/linters/salesforce_sfdx_scanner_aura/Dockerfile index 0bcabedda7f..7456ffbebb5 100644 --- a/linters/salesforce_sfdx_scanner_aura/Dockerfile +++ b/linters/salesforce_sfdx_scanner_aura/Dockerfile @@ -161,7 +161,7 @@ RUN echo y|sfdx plugins:install sfdx-hardis \ ################################ # Installs python dependencies # ################################ -COPY megalinter /megalinter +COPY --chown=1000:1000 megalinter /megalinter RUN PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py install \ && PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py clean --all \ && rm -rf /var/cache/apk/* \ @@ -170,8 +170,13 @@ RUN PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py install \ ####################################### # Copy scripts and rules to container # ####################################### -COPY megalinter/descriptors /megalinter-descriptors -COPY TEMPLATES /action/lib/.automation +COPY --chown=1000:1000 megalinter/descriptors /megalinter-descriptors +COPY --chown=1000:1000 TEMPLATES /action/lib/.automation + +##################################################### +# Make the container rootless for sake of security. # +##################################################### +USER 1000 ########################### # Get the build arguments # diff --git a/linters/salesforce_sfdx_scanner_lwc/Dockerfile b/linters/salesforce_sfdx_scanner_lwc/Dockerfile index ed25cb95cfd..d8e2bc0ca41 100644 --- a/linters/salesforce_sfdx_scanner_lwc/Dockerfile +++ b/linters/salesforce_sfdx_scanner_lwc/Dockerfile @@ -161,7 +161,7 @@ RUN echo y|sfdx plugins:install sfdx-hardis \ ################################ # Installs python dependencies # ################################ -COPY megalinter /megalinter +COPY --chown=1000:1000 megalinter /megalinter RUN PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py install \ && PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py clean --all \ && rm -rf /var/cache/apk/* \ @@ -170,8 +170,13 @@ RUN PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py install \ ####################################### # Copy scripts and rules to container # ####################################### -COPY megalinter/descriptors /megalinter-descriptors -COPY TEMPLATES /action/lib/.automation +COPY --chown=1000:1000 megalinter/descriptors /megalinter-descriptors +COPY --chown=1000:1000 TEMPLATES /action/lib/.automation + +##################################################### +# Make the container rootless for sake of security. # +##################################################### +USER 1000 ########################### # Get the build arguments # diff --git a/linters/scala_scalafix/Dockerfile b/linters/scala_scalafix/Dockerfile index 3f2bebbffc8..16dff293403 100644 --- a/linters/scala_scalafix/Dockerfile +++ b/linters/scala_scalafix/Dockerfile @@ -135,7 +135,7 @@ RUN curl --retry-all-errors --retry 10 -fLo coursier https://git.io/coursier-cli ################################ # Installs python dependencies # ################################ -COPY megalinter /megalinter +COPY --chown=1000:1000 megalinter /megalinter RUN PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py install \ && PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py clean --all \ && rm -rf /var/cache/apk/* \ @@ -144,8 +144,13 @@ RUN PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py install \ ####################################### # Copy scripts and rules to container # ####################################### -COPY megalinter/descriptors /megalinter-descriptors -COPY TEMPLATES /action/lib/.automation +COPY --chown=1000:1000 megalinter/descriptors /megalinter-descriptors +COPY --chown=1000:1000 TEMPLATES /action/lib/.automation + +##################################################### +# Make the container rootless for sake of security. # +##################################################### +USER 1000 ########################### # Get the build arguments # diff --git a/linters/snakemake_lint/Dockerfile b/linters/snakemake_lint/Dockerfile index f34f3414503..5781109f2b1 100644 --- a/linters/snakemake_lint/Dockerfile +++ b/linters/snakemake_lint/Dockerfile @@ -131,7 +131,7 @@ ENV PATH="/node-deps/node_modules/.bin:${PATH}" \ ################################ # Installs python dependencies # ################################ -COPY megalinter /megalinter +COPY --chown=1000:1000 megalinter /megalinter RUN PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py install \ && PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py clean --all \ && rm -rf /var/cache/apk/* \ @@ -140,8 +140,13 @@ RUN PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py install \ ####################################### # Copy scripts and rules to container # ####################################### -COPY megalinter/descriptors /megalinter-descriptors -COPY TEMPLATES /action/lib/.automation +COPY --chown=1000:1000 megalinter/descriptors /megalinter-descriptors +COPY --chown=1000:1000 TEMPLATES /action/lib/.automation + +##################################################### +# Make the container rootless for sake of security. # +##################################################### +USER 1000 ########################### # Get the build arguments # diff --git a/linters/snakemake_snakefmt/Dockerfile b/linters/snakemake_snakefmt/Dockerfile index b300e4d4857..c82253339a1 100644 --- a/linters/snakemake_snakefmt/Dockerfile +++ b/linters/snakemake_snakefmt/Dockerfile @@ -131,7 +131,7 @@ ENV PATH="/node-deps/node_modules/.bin:${PATH}" \ ################################ # Installs python dependencies # ################################ -COPY megalinter /megalinter +COPY --chown=1000:1000 megalinter /megalinter RUN PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py install \ && PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py clean --all \ && rm -rf /var/cache/apk/* \ @@ -140,8 +140,13 @@ RUN PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py install \ ####################################### # Copy scripts and rules to container # ####################################### -COPY megalinter/descriptors /megalinter-descriptors -COPY TEMPLATES /action/lib/.automation +COPY --chown=1000:1000 megalinter/descriptors /megalinter-descriptors +COPY --chown=1000:1000 TEMPLATES /action/lib/.automation + +##################################################### +# Make the container rootless for sake of security. # +##################################################### +USER 1000 ########################### # Get the build arguments # diff --git a/linters/spell_cspell/Dockerfile b/linters/spell_cspell/Dockerfile index 3b530a99677..496ac7c17cc 100644 --- a/linters/spell_cspell/Dockerfile +++ b/linters/spell_cspell/Dockerfile @@ -148,7 +148,7 @@ ENV PATH="/node-deps/node_modules/.bin:${PATH}" \ ################################ # Installs python dependencies # ################################ -COPY megalinter /megalinter +COPY --chown=1000:1000 megalinter /megalinter RUN PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py install \ && PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py clean --all \ && rm -rf /var/cache/apk/* \ @@ -157,8 +157,13 @@ RUN PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py install \ ####################################### # Copy scripts and rules to container # ####################################### -COPY megalinter/descriptors /megalinter-descriptors -COPY TEMPLATES /action/lib/.automation +COPY --chown=1000:1000 megalinter/descriptors /megalinter-descriptors +COPY --chown=1000:1000 TEMPLATES /action/lib/.automation + +##################################################### +# Make the container rootless for sake of security. # +##################################################### +USER 1000 ########################### # Get the build arguments # diff --git a/linters/spell_misspell/Dockerfile b/linters/spell_misspell/Dockerfile index 3ac6acf8de8..507e7743fed 100644 --- a/linters/spell_misspell/Dockerfile +++ b/linters/spell_misspell/Dockerfile @@ -136,7 +136,7 @@ RUN ML_THIRD_PARTY_DIR="/third-party/misspell" \ ################################ # Installs python dependencies # ################################ -COPY megalinter /megalinter +COPY --chown=1000:1000 megalinter /megalinter RUN PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py install \ && PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py clean --all \ && rm -rf /var/cache/apk/* \ @@ -145,8 +145,13 @@ RUN PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py install \ ####################################### # Copy scripts and rules to container # ####################################### -COPY megalinter/descriptors /megalinter-descriptors -COPY TEMPLATES /action/lib/.automation +COPY --chown=1000:1000 megalinter/descriptors /megalinter-descriptors +COPY --chown=1000:1000 TEMPLATES /action/lib/.automation + +##################################################### +# Make the container rootless for sake of security. # +##################################################### +USER 1000 ########################### # Get the build arguments # diff --git a/linters/spell_proselint/Dockerfile b/linters/spell_proselint/Dockerfile index 2d1b1f93a69..6b79db65783 100644 --- a/linters/spell_proselint/Dockerfile +++ b/linters/spell_proselint/Dockerfile @@ -131,7 +131,7 @@ ENV PATH="/node-deps/node_modules/.bin:${PATH}" \ ################################ # Installs python dependencies # ################################ -COPY megalinter /megalinter +COPY --chown=1000:1000 megalinter /megalinter RUN PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py install \ && PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py clean --all \ && rm -rf /var/cache/apk/* \ @@ -140,8 +140,13 @@ RUN PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py install \ ####################################### # Copy scripts and rules to container # ####################################### -COPY megalinter/descriptors /megalinter-descriptors -COPY TEMPLATES /action/lib/.automation +COPY --chown=1000:1000 megalinter/descriptors /megalinter-descriptors +COPY --chown=1000:1000 TEMPLATES /action/lib/.automation + +##################################################### +# Make the container rootless for sake of security. # +##################################################### +USER 1000 ########################### # Get the build arguments # diff --git a/linters/sql_sql_lint/Dockerfile b/linters/sql_sql_lint/Dockerfile index e435be5304c..5afa2f8a8c8 100644 --- a/linters/sql_sql_lint/Dockerfile +++ b/linters/sql_sql_lint/Dockerfile @@ -148,7 +148,7 @@ ENV PATH="/node-deps/node_modules/.bin:${PATH}" \ ################################ # Installs python dependencies # ################################ -COPY megalinter /megalinter +COPY --chown=1000:1000 megalinter /megalinter RUN PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py install \ && PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py clean --all \ && rm -rf /var/cache/apk/* \ @@ -157,8 +157,13 @@ RUN PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py install \ ####################################### # Copy scripts and rules to container # ####################################### -COPY megalinter/descriptors /megalinter-descriptors -COPY TEMPLATES /action/lib/.automation +COPY --chown=1000:1000 megalinter/descriptors /megalinter-descriptors +COPY --chown=1000:1000 TEMPLATES /action/lib/.automation + +##################################################### +# Make the container rootless for sake of security. # +##################################################### +USER 1000 ########################### # Get the build arguments # diff --git a/linters/sql_sqlfluff/Dockerfile b/linters/sql_sqlfluff/Dockerfile index 315b1b78387..1168fc05a34 100644 --- a/linters/sql_sqlfluff/Dockerfile +++ b/linters/sql_sqlfluff/Dockerfile @@ -131,7 +131,7 @@ ENV PATH="/node-deps/node_modules/.bin:${PATH}" \ ################################ # Installs python dependencies # ################################ -COPY megalinter /megalinter +COPY --chown=1000:1000 megalinter /megalinter RUN PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py install \ && PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py clean --all \ && rm -rf /var/cache/apk/* \ @@ -140,8 +140,13 @@ RUN PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py install \ ####################################### # Copy scripts and rules to container # ####################################### -COPY megalinter/descriptors /megalinter-descriptors -COPY TEMPLATES /action/lib/.automation +COPY --chown=1000:1000 megalinter/descriptors /megalinter-descriptors +COPY --chown=1000:1000 TEMPLATES /action/lib/.automation + +##################################################### +# Make the container rootless for sake of security. # +##################################################### +USER 1000 ########################### # Get the build arguments # diff --git a/linters/sql_tsqllint/Dockerfile b/linters/sql_tsqllint/Dockerfile index 9d298c74563..61156bb732c 100644 --- a/linters/sql_tsqllint/Dockerfile +++ b/linters/sql_tsqllint/Dockerfile @@ -143,7 +143,7 @@ RUN dotnet tool install --global TSQLLint ################################ # Installs python dependencies # ################################ -COPY megalinter /megalinter +COPY --chown=1000:1000 megalinter /megalinter RUN PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py install \ && PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py clean --all \ && rm -rf /var/cache/apk/* \ @@ -152,8 +152,13 @@ RUN PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py install \ ####################################### # Copy scripts and rules to container # ####################################### -COPY megalinter/descriptors /megalinter-descriptors -COPY TEMPLATES /action/lib/.automation +COPY --chown=1000:1000 megalinter/descriptors /megalinter-descriptors +COPY --chown=1000:1000 TEMPLATES /action/lib/.automation + +##################################################### +# Make the container rootless for sake of security. # +##################################################### +USER 1000 ########################### # Get the build arguments # diff --git a/linters/swift_swiftlint/Dockerfile b/linters/swift_swiftlint/Dockerfile index 15962b7602c..a7979995f07 100644 --- a/linters/swift_swiftlint/Dockerfile +++ b/linters/swift_swiftlint/Dockerfile @@ -130,7 +130,7 @@ RUN rc-update add docker boot && rc-service docker start || true ################################ # Installs python dependencies # ################################ -COPY megalinter /megalinter +COPY --chown=1000:1000 megalinter /megalinter RUN PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py install \ && PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py clean --all \ && rm -rf /var/cache/apk/* \ @@ -139,8 +139,13 @@ RUN PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py install \ ####################################### # Copy scripts and rules to container # ####################################### -COPY megalinter/descriptors /megalinter-descriptors -COPY TEMPLATES /action/lib/.automation +COPY --chown=1000:1000 megalinter/descriptors /megalinter-descriptors +COPY --chown=1000:1000 TEMPLATES /action/lib/.automation + +##################################################### +# Make the container rootless for sake of security. # +##################################################### +USER 1000 ########################### # Get the build arguments # diff --git a/linters/tekton_tekton_lint/Dockerfile b/linters/tekton_tekton_lint/Dockerfile index 4cab8512071..0b0d375201f 100644 --- a/linters/tekton_tekton_lint/Dockerfile +++ b/linters/tekton_tekton_lint/Dockerfile @@ -148,7 +148,7 @@ ENV PATH="/node-deps/node_modules/.bin:${PATH}" \ ################################ # Installs python dependencies # ################################ -COPY megalinter /megalinter +COPY --chown=1000:1000 megalinter /megalinter RUN PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py install \ && PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py clean --all \ && rm -rf /var/cache/apk/* \ @@ -157,8 +157,13 @@ RUN PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py install \ ####################################### # Copy scripts and rules to container # ####################################### -COPY megalinter/descriptors /megalinter-descriptors -COPY TEMPLATES /action/lib/.automation +COPY --chown=1000:1000 megalinter/descriptors /megalinter-descriptors +COPY --chown=1000:1000 TEMPLATES /action/lib/.automation + +##################################################### +# Make the container rootless for sake of security. # +##################################################### +USER 1000 ########################### # Get the build arguments # diff --git a/linters/terraform_checkov/Dockerfile b/linters/terraform_checkov/Dockerfile index fddcc7acdf1..2a7bbb0f320 100644 --- a/linters/terraform_checkov/Dockerfile +++ b/linters/terraform_checkov/Dockerfile @@ -131,7 +131,7 @@ ENV PATH="/node-deps/node_modules/.bin:${PATH}" \ ################################ # Installs python dependencies # ################################ -COPY megalinter /megalinter +COPY --chown=1000:1000 megalinter /megalinter RUN PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py install \ && PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py clean --all \ && rm -rf /var/cache/apk/* \ @@ -140,8 +140,13 @@ RUN PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py install \ ####################################### # Copy scripts and rules to container # ####################################### -COPY megalinter/descriptors /megalinter-descriptors -COPY TEMPLATES /action/lib/.automation +COPY --chown=1000:1000 megalinter/descriptors /megalinter-descriptors +COPY --chown=1000:1000 TEMPLATES /action/lib/.automation + +##################################################### +# Make the container rootless for sake of security. # +##################################################### +USER 1000 ########################### # Get the build arguments # diff --git a/linters/terraform_kics/Dockerfile b/linters/terraform_kics/Dockerfile index b1ffea897a5..270a8a056cc 100644 --- a/linters/terraform_kics/Dockerfile +++ b/linters/terraform_kics/Dockerfile @@ -134,7 +134,7 @@ ENV KICS_QUERIES_PATH=/opt/kics/assets/queries KICS_LIBRARIES_PATH=/opt/kics/ass ################################ # Installs python dependencies # ################################ -COPY megalinter /megalinter +COPY --chown=1000:1000 megalinter /megalinter RUN PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py install \ && PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py clean --all \ && rm -rf /var/cache/apk/* \ @@ -143,8 +143,13 @@ RUN PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py install \ ####################################### # Copy scripts and rules to container # ####################################### -COPY megalinter/descriptors /megalinter-descriptors -COPY TEMPLATES /action/lib/.automation +COPY --chown=1000:1000 megalinter/descriptors /megalinter-descriptors +COPY --chown=1000:1000 TEMPLATES /action/lib/.automation + +##################################################### +# Make the container rootless for sake of security. # +##################################################### +USER 1000 ########################### # Get the build arguments # diff --git a/linters/terraform_terraform_fmt/Dockerfile b/linters/terraform_terraform_fmt/Dockerfile index ceda4dd592e..095bb34fcc1 100644 --- a/linters/terraform_terraform_fmt/Dockerfile +++ b/linters/terraform_terraform_fmt/Dockerfile @@ -130,7 +130,7 @@ COPY --link --from=terragrunt /bin/terraform /usr/bin/ ################################ # Installs python dependencies # ################################ -COPY megalinter /megalinter +COPY --chown=1000:1000 megalinter /megalinter RUN PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py install \ && PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py clean --all \ && rm -rf /var/cache/apk/* \ @@ -139,8 +139,13 @@ RUN PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py install \ ####################################### # Copy scripts and rules to container # ####################################### -COPY megalinter/descriptors /megalinter-descriptors -COPY TEMPLATES /action/lib/.automation +COPY --chown=1000:1000 megalinter/descriptors /megalinter-descriptors +COPY --chown=1000:1000 TEMPLATES /action/lib/.automation + +##################################################### +# Make the container rootless for sake of security. # +##################################################### +USER 1000 ########################### # Get the build arguments # diff --git a/linters/terraform_terragrunt/Dockerfile b/linters/terraform_terragrunt/Dockerfile index 0f126bbe67e..d60a103cd5f 100644 --- a/linters/terraform_terragrunt/Dockerfile +++ b/linters/terraform_terragrunt/Dockerfile @@ -130,7 +130,7 @@ COPY --link --from=terragrunt /usr/local/bin/terragrunt /usr/bin/ ################################ # Installs python dependencies # ################################ -COPY megalinter /megalinter +COPY --chown=1000:1000 megalinter /megalinter RUN PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py install \ && PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py clean --all \ && rm -rf /var/cache/apk/* \ @@ -139,8 +139,13 @@ RUN PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py install \ ####################################### # Copy scripts and rules to container # ####################################### -COPY megalinter/descriptors /megalinter-descriptors -COPY TEMPLATES /action/lib/.automation +COPY --chown=1000:1000 megalinter/descriptors /megalinter-descriptors +COPY --chown=1000:1000 TEMPLATES /action/lib/.automation + +##################################################### +# Make the container rootless for sake of security. # +##################################################### +USER 1000 ########################### # Get the build arguments # diff --git a/linters/terraform_terrascan/Dockerfile b/linters/terraform_terrascan/Dockerfile index da55442f5fc..9a787eb13fb 100644 --- a/linters/terraform_terrascan/Dockerfile +++ b/linters/terraform_terrascan/Dockerfile @@ -130,7 +130,7 @@ COPY --link --from=terrascan /go/bin/terrascan /usr/bin/ ################################ # Installs python dependencies # ################################ -COPY megalinter /megalinter +COPY --chown=1000:1000 megalinter /megalinter RUN PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py install \ && PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py clean --all \ && rm -rf /var/cache/apk/* \ @@ -139,8 +139,13 @@ RUN PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py install \ ####################################### # Copy scripts and rules to container # ####################################### -COPY megalinter/descriptors /megalinter-descriptors -COPY TEMPLATES /action/lib/.automation +COPY --chown=1000:1000 megalinter/descriptors /megalinter-descriptors +COPY --chown=1000:1000 TEMPLATES /action/lib/.automation + +##################################################### +# Make the container rootless for sake of security. # +##################################################### +USER 1000 ########################### # Get the build arguments # diff --git a/linters/terraform_tflint/Dockerfile b/linters/terraform_tflint/Dockerfile index 5ad3b84ef2d..6ea50e8395f 100644 --- a/linters/terraform_tflint/Dockerfile +++ b/linters/terraform_tflint/Dockerfile @@ -130,7 +130,7 @@ COPY --link --from=tflint /usr/local/bin/tflint /usr/bin/ ################################ # Installs python dependencies # ################################ -COPY megalinter /megalinter +COPY --chown=1000:1000 megalinter /megalinter RUN PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py install \ && PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py clean --all \ && rm -rf /var/cache/apk/* \ @@ -139,8 +139,13 @@ RUN PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py install \ ####################################### # Copy scripts and rules to container # ####################################### -COPY megalinter/descriptors /megalinter-descriptors -COPY TEMPLATES /action/lib/.automation +COPY --chown=1000:1000 megalinter/descriptors /megalinter-descriptors +COPY --chown=1000:1000 TEMPLATES /action/lib/.automation + +##################################################### +# Make the container rootless for sake of security. # +##################################################### +USER 1000 ########################### # Get the build arguments # diff --git a/linters/tsx_eslint/Dockerfile b/linters/tsx_eslint/Dockerfile index c187a8a6dc3..b895d01aa21 100644 --- a/linters/tsx_eslint/Dockerfile +++ b/linters/tsx_eslint/Dockerfile @@ -160,7 +160,7 @@ ENV PATH="/node-deps/node_modules/.bin:${PATH}" \ ################################ # Installs python dependencies # ################################ -COPY megalinter /megalinter +COPY --chown=1000:1000 megalinter /megalinter RUN PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py install \ && PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py clean --all \ && rm -rf /var/cache/apk/* \ @@ -169,8 +169,13 @@ RUN PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py install \ ####################################### # Copy scripts and rules to container # ####################################### -COPY megalinter/descriptors /megalinter-descriptors -COPY TEMPLATES /action/lib/.automation +COPY --chown=1000:1000 megalinter/descriptors /megalinter-descriptors +COPY --chown=1000:1000 TEMPLATES /action/lib/.automation + +##################################################### +# Make the container rootless for sake of security. # +##################################################### +USER 1000 ########################### # Get the build arguments # diff --git a/linters/typescript_es/Dockerfile b/linters/typescript_es/Dockerfile index 40ee9bdfdf5..fe4532e0e70 100644 --- a/linters/typescript_es/Dockerfile +++ b/linters/typescript_es/Dockerfile @@ -163,7 +163,7 @@ ENV PATH="/node-deps/node_modules/.bin:${PATH}" \ ################################ # Installs python dependencies # ################################ -COPY megalinter /megalinter +COPY --chown=1000:1000 megalinter /megalinter RUN PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py install \ && PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py clean --all \ && rm -rf /var/cache/apk/* \ @@ -172,8 +172,13 @@ RUN PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py install \ ####################################### # Copy scripts and rules to container # ####################################### -COPY megalinter/descriptors /megalinter-descriptors -COPY TEMPLATES /action/lib/.automation +COPY --chown=1000:1000 megalinter/descriptors /megalinter-descriptors +COPY --chown=1000:1000 TEMPLATES /action/lib/.automation + +##################################################### +# Make the container rootless for sake of security. # +##################################################### +USER 1000 ########################### # Get the build arguments # diff --git a/linters/typescript_prettier/Dockerfile b/linters/typescript_prettier/Dockerfile index a58cc0b8ef0..8fb2022a5d9 100644 --- a/linters/typescript_prettier/Dockerfile +++ b/linters/typescript_prettier/Dockerfile @@ -149,7 +149,7 @@ ENV PATH="/node-deps/node_modules/.bin:${PATH}" \ ################################ # Installs python dependencies # ################################ -COPY megalinter /megalinter +COPY --chown=1000:1000 megalinter /megalinter RUN PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py install \ && PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py clean --all \ && rm -rf /var/cache/apk/* \ @@ -158,8 +158,13 @@ RUN PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py install \ ####################################### # Copy scripts and rules to container # ####################################### -COPY megalinter/descriptors /megalinter-descriptors -COPY TEMPLATES /action/lib/.automation +COPY --chown=1000:1000 megalinter/descriptors /megalinter-descriptors +COPY --chown=1000:1000 TEMPLATES /action/lib/.automation + +##################################################### +# Make the container rootless for sake of security. # +##################################################### +USER 1000 ########################### # Get the build arguments # diff --git a/linters/typescript_standard/Dockerfile b/linters/typescript_standard/Dockerfile index 7354c8a0992..a7bca9725cb 100644 --- a/linters/typescript_standard/Dockerfile +++ b/linters/typescript_standard/Dockerfile @@ -151,7 +151,7 @@ ENV PATH="/node-deps/node_modules/.bin:${PATH}" \ ################################ # Installs python dependencies # ################################ -COPY megalinter /megalinter +COPY --chown=1000:1000 megalinter /megalinter RUN PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py install \ && PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py clean --all \ && rm -rf /var/cache/apk/* \ @@ -160,8 +160,13 @@ RUN PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py install \ ####################################### # Copy scripts and rules to container # ####################################### -COPY megalinter/descriptors /megalinter-descriptors -COPY TEMPLATES /action/lib/.automation +COPY --chown=1000:1000 megalinter/descriptors /megalinter-descriptors +COPY --chown=1000:1000 TEMPLATES /action/lib/.automation + +##################################################### +# Make the container rootless for sake of security. # +##################################################### +USER 1000 ########################### # Get the build arguments # diff --git a/linters/vbdotnet_dotnet_format/Dockerfile b/linters/vbdotnet_dotnet_format/Dockerfile index 8ec106637e0..7e3ecffcb71 100644 --- a/linters/vbdotnet_dotnet_format/Dockerfile +++ b/linters/vbdotnet_dotnet_format/Dockerfile @@ -142,7 +142,7 @@ ENV PATH="${PATH}:/root/.dotnet/tools:/usr/share/dotnet" ################################ # Installs python dependencies # ################################ -COPY megalinter /megalinter +COPY --chown=1000:1000 megalinter /megalinter RUN PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py install \ && PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py clean --all \ && rm -rf /var/cache/apk/* \ @@ -151,8 +151,13 @@ RUN PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py install \ ####################################### # Copy scripts and rules to container # ####################################### -COPY megalinter/descriptors /megalinter-descriptors -COPY TEMPLATES /action/lib/.automation +COPY --chown=1000:1000 megalinter/descriptors /megalinter-descriptors +COPY --chown=1000:1000 TEMPLATES /action/lib/.automation + +##################################################### +# Make the container rootless for sake of security. # +##################################################### +USER 1000 ########################### # Get the build arguments # diff --git a/linters/xml_xmllint/Dockerfile b/linters/xml_xmllint/Dockerfile index 7e3eaa162e6..c27a5316254 100644 --- a/linters/xml_xmllint/Dockerfile +++ b/linters/xml_xmllint/Dockerfile @@ -132,7 +132,7 @@ ENV PATH="/node-deps/node_modules/.bin:${PATH}" \ ################################ # Installs python dependencies # ################################ -COPY megalinter /megalinter +COPY --chown=1000:1000 megalinter /megalinter RUN PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py install \ && PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py clean --all \ && rm -rf /var/cache/apk/* \ @@ -141,8 +141,13 @@ RUN PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py install \ ####################################### # Copy scripts and rules to container # ####################################### -COPY megalinter/descriptors /megalinter-descriptors -COPY TEMPLATES /action/lib/.automation +COPY --chown=1000:1000 megalinter/descriptors /megalinter-descriptors +COPY --chown=1000:1000 TEMPLATES /action/lib/.automation + +##################################################### +# Make the container rootless for sake of security. # +##################################################### +USER 1000 ########################### # Get the build arguments # diff --git a/linters/yaml_prettier/Dockerfile b/linters/yaml_prettier/Dockerfile index 56f3076d8f8..cba4f7248ce 100644 --- a/linters/yaml_prettier/Dockerfile +++ b/linters/yaml_prettier/Dockerfile @@ -148,7 +148,7 @@ ENV PATH="/node-deps/node_modules/.bin:${PATH}" \ ################################ # Installs python dependencies # ################################ -COPY megalinter /megalinter +COPY --chown=1000:1000 megalinter /megalinter RUN PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py install \ && PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py clean --all \ && rm -rf /var/cache/apk/* \ @@ -157,8 +157,13 @@ RUN PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py install \ ####################################### # Copy scripts and rules to container # ####################################### -COPY megalinter/descriptors /megalinter-descriptors -COPY TEMPLATES /action/lib/.automation +COPY --chown=1000:1000 megalinter/descriptors /megalinter-descriptors +COPY --chown=1000:1000 TEMPLATES /action/lib/.automation + +##################################################### +# Make the container rootless for sake of security. # +##################################################### +USER 1000 ########################### # Get the build arguments # diff --git a/linters/yaml_v8r/Dockerfile b/linters/yaml_v8r/Dockerfile index e13fd62efb1..6a6aeffc01a 100644 --- a/linters/yaml_v8r/Dockerfile +++ b/linters/yaml_v8r/Dockerfile @@ -148,7 +148,7 @@ ENV PATH="/node-deps/node_modules/.bin:${PATH}" \ ################################ # Installs python dependencies # ################################ -COPY megalinter /megalinter +COPY --chown=1000:1000 megalinter /megalinter RUN PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py install \ && PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py clean --all \ && rm -rf /var/cache/apk/* \ @@ -157,8 +157,13 @@ RUN PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py install \ ####################################### # Copy scripts and rules to container # ####################################### -COPY megalinter/descriptors /megalinter-descriptors -COPY TEMPLATES /action/lib/.automation +COPY --chown=1000:1000 megalinter/descriptors /megalinter-descriptors +COPY --chown=1000:1000 TEMPLATES /action/lib/.automation + +##################################################### +# Make the container rootless for sake of security. # +##################################################### +USER 1000 ########################### # Get the build arguments # diff --git a/linters/yaml_yamllint/Dockerfile b/linters/yaml_yamllint/Dockerfile index 7b1d6c14431..e051ad3eb4c 100644 --- a/linters/yaml_yamllint/Dockerfile +++ b/linters/yaml_yamllint/Dockerfile @@ -131,7 +131,7 @@ ENV PATH="/node-deps/node_modules/.bin:${PATH}" \ ################################ # Installs python dependencies # ################################ -COPY megalinter /megalinter +COPY --chown=1000:1000 megalinter /megalinter RUN PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py install \ && PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py clean --all \ && rm -rf /var/cache/apk/* \ @@ -140,8 +140,13 @@ RUN PYTHONDONTWRITEBYTECODE=1 python /megalinter/setup.py install \ ####################################### # Copy scripts and rules to container # ####################################### -COPY megalinter/descriptors /megalinter-descriptors -COPY TEMPLATES /action/lib/.automation +COPY --chown=1000:1000 megalinter/descriptors /megalinter-descriptors +COPY --chown=1000:1000 TEMPLATES /action/lib/.automation + +##################################################### +# Make the container rootless for sake of security. # +##################################################### +USER 1000 ########################### # Get the build arguments # diff --git a/mega-linter-runner/lib/runner.js b/mega-linter-runner/lib/runner.js index a6d8330a315..b4bebf7a61e 100644 --- a/mega-linter-runner/lib/runner.js +++ b/mega-linter-runner/lib/runner.js @@ -132,6 +132,7 @@ ERROR: Docker engine has not been found on your system. if (options["containerName"]) { commandArgs.push(...["--name", options["containerName"]]); } + commandArgs.push(...["--user", `1000:1000`]); commandArgs.push(...["-v", "/var/run/docker.sock:/var/run/docker.sock:rw"]); commandArgs.push(...["-v", `${lintPath}:/tmp/lint:rw`]); if (options.fix === true) {