Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

refactor(docker): Define tool versions only once #8648

Merged
merged 2 commits into from
May 16, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .github/workflows/build-and-test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -72,7 +72,7 @@ jobs:
with:
submodules: recursive
- name: Set tool version environment variables
run: cat .versions >> $GITHUB_ENV
run: sed "s/^ARG //" docker/versions.dockerfile >> $GITHUB_ENV
- name: Install required tools
run: |
# Uninstall mono-devel because it contains the "lc" command which conflicts with BoyterLc.
Expand Down
4 changes: 4 additions & 0 deletions .reuse/dep5
Original file line number Diff line number Diff line change
Expand Up @@ -56,6 +56,10 @@ Files: clients/github-graphql/src/main/assets/*
Copyright: 2021 The ORT Project Authors (see <https://github.com/oss-review-toolkit/ort/blob/main/NOTICE>)
License: Apache-2.0

Files: docker/versions.dockerfile
Copyright: 2024 The ORT Project Authors (see <https://github.com/oss-review-toolkit/ort/blob/main/NOTICE>)
License: Apache-2.0

Files: examples/*
Copyright: 2017 The ORT Project Authors (see <https://github.com/oss-review-toolkit/ort/blob/main/NOTICE>)
License: Apache-2.0
Expand Down
32 changes: 0 additions & 32 deletions .versions

This file was deleted.

64 changes: 32 additions & 32 deletions Dockerfile
Original file line number Diff line number Diff line change
@@ -1,4 +1,6 @@
# syntax=docker/dockerfile:1.4
# syntax=devthefuture/dockerfile-x
# The above opts-in for an extended syntax that supports e.g. "INCLUDE" statements, see
# https://codeberg.org/devthefuture/dockerfile-x

# Copyright (C) 2020 The ORT Project Authors (see <https://github.com/oss-review-toolkit/ort/blob/main/NOTICE>)
#
Expand All @@ -17,9 +19,7 @@
# SPDX-License-Identifier: Apache-2.0
# License-Filename: LICENSE

# Set this to the Java version to use in the base image (and to build and run ORT with).
ARG JAVA_VERSION=17
ARG UBUNTU_VERSION=jammy
INCLUDE docker/versions.dockerfile

# Use OpenJDK Eclipe Temurin Ubuntu LTS
FROM eclipse-temurin:$JAVA_VERSION-jdk-$UBUNTU_VERSION as base
Expand Down Expand Up @@ -137,21 +137,21 @@ RUN --mount=type=cache,target=/var/cache/apt,sharing=locked \
tk-dev \
&& sudo rm -rf /var/lib/apt/lists/*

ARG PYTHON_VERSION=3.11.8
ARG PYENV_GIT_TAG=v2.3.36
ARG PYTHON_VERSION
ARG PYENV_GIT_TAG

ENV PYENV_ROOT=/opt/python
ENV PATH=$PATH:$PYENV_ROOT/shims:$PYENV_ROOT/bin
RUN curl -kSs https://pyenv.run | bash \
&& pyenv install -v $PYTHON_VERSION \
&& pyenv global $PYTHON_VERSION

ARG CONAN_VERSION=1.63.0
ARG PYTHON_INSPECTOR_VERSION=0.10.0
ARG PYTHON_PIPENV_VERSION=2023.10.24
ARG PYTHON_POETRY_VERSION=1.7.0
ARG PIPTOOL_VERSION=23.3.1
ARG SCANCODE_VERSION=32.1.0
ARG CONAN_VERSION
ARG PYTHON_INSPECTOR_VERSION
ARG PYTHON_PIPENV_VERSION
ARG PYTHON_POETRY_VERSION
ARG PIPTOOL_VERSION
ARG SCANCODE_VERSION

RUN pip install --no-cache-dir -U \
pip=="$PIPTOOL_VERSION" \
Expand Down Expand Up @@ -180,11 +180,11 @@ COPY --from=pythonbuild /opt/python /opt/python
# NODEJS - Build NodeJS as a separate component with nvm
FROM base AS nodejsbuild

ARG BOWER_VERSION=1.8.12
ARG NODEJS_VERSION=20.9.0
ARG NPM_VERSION=10.1.0
ARG PNPM_VERSION=8.10.3
ARG YARN_VERSION=1.22.19
ARG BOWER_VERSION
ARG NODEJS_VERSION
ARG NPM_VERSION
ARG PNPM_VERSION
ARG YARN_VERSION

ENV NVM_DIR=/opt/nvm
ENV PATH=$PATH:$NVM_DIR/versions/node/v$NODEJS_VERSION/bin
Expand Down Expand Up @@ -216,8 +216,8 @@ RUN --mount=type=cache,target=/var/cache/apt,sharing=locked \
zlib1g-dev \
&& sudo rm -rf /var/lib/apt/lists/*

ARG COCOAPODS_VERSION=1.14.2
ARG RUBY_VERSION=3.1.2
ARG COCOAPODS_VERSION
ARG RUBY_VERSION

ENV RBENV_ROOT=/opt/rbenv
ENV PATH=$RBENV_ROOT/bin:$RBENV_ROOT/shims/:$RBENV_ROOT/plugins/ruby-build/bin:$PATH
Expand All @@ -238,7 +238,7 @@ COPY --from=rubybuild /opt/rbenv /opt/rbenv
# RUST - Build as a separate component
FROM base AS rustbuild

ARG RUST_VERSION=1.72.0
ARG RUST_VERSION

ENV RUST_HOME=/opt/rust
ENV CARGO_HOME=$RUST_HOME/cargo
Expand All @@ -252,7 +252,7 @@ COPY --from=rustbuild /opt/rust /opt/rust
# GOLANG - Build as a separate component
FROM base AS gobuild

ARG GO_VERSION=1.22.2
ARG GO_VERSION
ENV GOBIN=/opt/go/bin
ENV PATH=$PATH:/opt/go/bin

Expand All @@ -274,7 +274,7 @@ RUN --mount=type=cache,target=/var/cache/apt,sharing=locked \
zlib1g-dev \
&& sudo rm -rf /var/lib/apt/lists/*

ARG HASKELL_STACK_VERSION=2.13.1
ARG HASKELL_STACK_VERSION

ENV HASKELL_HOME=/opt/haskell
ENV PATH=$PATH:$HASKELL_HOME/bin
Expand All @@ -295,7 +295,7 @@ RUN --mount=type=cache,target=/var/cache/apt,sharing=locked \
unzip \
&& sudo rm -rf /var/lib/apt/lists/*

ARG ANDROID_CMD_VERSION=11076708
ARG ANDROID_CMD_VERSION
ENV ANDROID_HOME=/opt/android-sdk

RUN --mount=type=tmpfs,target=/android \
Expand All @@ -320,7 +320,7 @@ COPY --from=androidbuild /opt/android-sdk /opt/android-sdk
# Dart
FROM base AS dartbuild

ARG DART_VERSION=2.18.4
ARG DART_VERSION
WORKDIR /opt/

ENV DART_SDK=/opt/dart-sdk
Expand All @@ -340,7 +340,7 @@ COPY --from=dartbuild /opt/dart-sdk /opt/dart-sdk
# SBT
FROM base AS scalabuild

ARG SBT_VERSION=1.9.7
ARG SBT_VERSION

ENV SBT_HOME=/opt/sbt
ENV PATH=$PATH:$SBT_HOME/bin
Expand All @@ -354,7 +354,7 @@ COPY --from=scalabuild /opt/sbt /opt/sbt
# SWIFT
FROM base AS swiftbuild

ARG SWIFT_VERSION=5.9.2
ARG SWIFT_VERSION

ENV SWIFT_HOME=/opt/swift
ENV PATH=$PATH:$SWIFT_HOME/bin
Expand All @@ -376,8 +376,8 @@ COPY --from=swiftbuild /opt/swift /opt/swift
# DOTNET
FROM base AS dotnetbuild

ARG DOTNET_VERSION=6.0
ARG NUGET_INSPECTOR_VERSION=0.9.12
ARG DOTNET_VERSION
ARG NUGET_INSPECTOR_VERSION

ENV DOTNET_HOME=/opt/dotnet
ENV NUGET_INSPECTOR_HOME=$DOTNET_HOME
Expand Down Expand Up @@ -405,7 +405,7 @@ COPY --from=dotnetbuild /opt/dotnet /opt/dotnet
# BAZEL
FROM base as bazelbuild

ARG BAZEL_VERSION=7.0.1
ARG BAZEL_VERSION

ENV BAZEL_HOME=/opt/bazel

Expand Down Expand Up @@ -472,7 +472,7 @@ COPY --from=python --chown=$USER:$USER $PYENV_ROOT $PYENV_ROOT
RUN syft $PYENV_ROOT -o spdx-json --output json=/usr/share/doc/ort/ort-python.spdx.json

# NodeJS
ARG NODEJS_VERSION=20.9.0
ARG NODEJS_VERSION
ENV NVM_DIR=/opt/nvm
ENV PATH=$PATH:$NVM_DIR/versions/node/v$NODEJS_VERSION/bin
COPY --from=nodejs --chown=$USER:$USER $NVM_DIR $NVM_DIR
Expand Down Expand Up @@ -545,8 +545,8 @@ COPY --from=dotnet --chown=$USER:$USER $DOTNET_HOME $DOTNET_HOME
RUN syft $DOTNET_HOME -o spdx-json --output json=/usr/share/doc/ort/ort-dotnet.spdx.json

# PHP
ARG PHP_VERSION=8.1
ARG COMPOSER_VERSION=2.2
ARG PHP_VERSION
ARG COMPOSER_VERSION

RUN --mount=type=cache,target=/var/cache/apt,sharing=locked \
--mount=type=cache,target=/var/lib/apt,sharing=locked \
Expand Down
17 changes: 9 additions & 8 deletions buildSrc/src/main/kotlin/LicenseUtils.kt
Original file line number Diff line number Diff line change
Expand Up @@ -25,15 +25,9 @@ object CopyrightableFiles {
private val excludedPaths = listOf(
"LICENSE",
"NOTICE",
"website/babel.config.js",
"website/docusaurus.config.js",
"website/docs/configuration/_category_.yml",
"website/docs/getting-started/_category_.yml",
"website/docs/guides/_category_.yml",
"website/docs/tools/_category_.yml",
"website/sidebars.js",
"gradlew",
"gradle/",
"docker/versions.dockerfile",
"examples/",
"integrations/completions/",
"plugins/reporters/asciidoc/src/main/resources/pdf-theme/pdf-theme.yml",
Expand All @@ -47,7 +41,14 @@ object CopyrightableFiles {
"resources/licenses/",
"resources/licenserefs/",
"test/assets/",
"funTest/assets/"
"funTest/assets/",
"website/babel.config.js",
"website/docusaurus.config.js",
"website/docs/configuration/_category_.yml",
"website/docs/getting-started/_category_.yml",
"website/docs/guides/_category_.yml",
"website/docs/tools/_category_.yml",
"website/sidebars.js"
)

private val excludedExtensions = listOf(
Expand Down
32 changes: 32 additions & 0 deletions docker/versions.dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
ARG ANDROID_CMD_VERSION=11076708
ARG ASKALONO_VERSION=0.4.6
ARG BAZEL_VERSION=7.0.1
ARG BOWER_VERSION=1.8.12
ARG BOYTERLC_VERSION=1.3.1
ARG COCOAPODS_VERSION=1.14.2
ARG COMPOSER_VERSION=2.2
ARG CONAN_VERSION=1.63.0
ARG DART_VERSION=2.18.4
ARG DOTNET_VERSION=6.0
ARG GO_VERSION=1.22.2
ARG HASKELL_STACK_VERSION=2.13.1
ARG JAVA_VERSION=17
ARG LICENSEE_VERSION=9.15.3
ARG NODEJS_VERSION=20.9.0
ARG NPM_VERSION=10.1.0
ARG NUGET_INSPECTOR_VERSION=0.9.12
ARG PHP_VERSION=8.1
ARG PIPTOOL_VERSION=23.3.1
ARG PNPM_VERSION=8.10.3
ARG PYENV_GIT_TAG=v2.3.36
ARG PYTHON_INSPECTOR_VERSION=0.10.0
ARG PYTHON_PIPENV_VERSION=2023.10.24
ARG PYTHON_POETRY_VERSION=1.7.0
ARG PYTHON_VERSION=3.11.8
ARG RUBY_VERSION=3.1.2
ARG RUST_VERSION=1.72.0
ARG SBT_VERSION=1.9.7
ARG SCANCODE_VERSION=32.1.0
ARG SWIFT_VERSION=5.9.2
ARG UBUNTU_VERSION=jammy
ARG YARN_VERSION=1.22.19
3 changes: 0 additions & 3 deletions scripts/docker_build.sh
Original file line number Diff line number Diff line change
Expand Up @@ -25,9 +25,6 @@ DOCKER_IMAGE_ROOT="${DOCKER_IMAGE_ROOT:-ghcr.io/oss-review-toolkit}"

echo "Setting ORT_VERSION to $ORT_VERSION."

# shellcheck disable=SC1091
. .versions

# ---------------------------
# image_build function
# Usage ( position parameters):
Expand Down
Loading