diff --git a/.github/workflows/epicmorg.advanced.nextcloud.images.yml b/.github/workflows/epicmorg.advanced.nextcloud.images.yml index daa1ac503..0efa81e27 100644 --- a/.github/workflows/epicmorg.advanced.nextcloud.images.yml +++ b/.github/workflows/epicmorg.advanced.nextcloud.images.yml @@ -72,6 +72,9 @@ jobs: - name: "Build and Deploy Advanced Nextcloud 28 Stock Images:" run: cd linux/advanced/nextcloud/pure/28 && pwd && make build && make deploy + - name: "Build and Deploy Advanced Nextcloud 29 Stock Images:" + run: cd linux/advanced/nextcloud/pure/29 && pwd && make build && make deploy + - name: "Build and Deploy Advanced Nextcloud Latest Stock Images:" run: cd linux/advanced/nextcloud/pure/latest && pwd && make build && make deploy @@ -143,6 +146,9 @@ jobs: - name: "Build and Deploy Advanced Nextcloud 28 Patched Images:" run: cd linux/advanced/nextcloud/patched/28 && pwd && make build && make deploy + - name: "Build and Deploy Advanced Nextcloud 29 Patched Images:" + run: cd linux/advanced/nextcloud/patched/29 && pwd && make build && make deploy + - name: "Build and Deploy Advanced Nextcloud Latest Patched Images:" run: cd linux/advanced/nextcloud/patched/latest && pwd && make build && make deploy diff --git a/.github/workflows/epicmorg.base.images.current.debian10.yml b/.github/workflows/epicmorg.base.images.current.debian10.yml index 4f7a37ec4..d791c1462 100644 --- a/.github/workflows/epicmorg.base.images.current.debian10.yml +++ b/.github/workflows/epicmorg.base.images.current.debian10.yml @@ -29,25 +29,53 @@ jobs: - name: "Build and Deploy Debian 10 develop Image:" run: cd linux/ecosystem/epicmorg/debian/10-buster/develop && pwd && make build && make deploy - + +################################################################################## + + - name: Cleanup + run: make docker-clean + +################################################################################## + - name: "Build and Deploy Debian 10 jdk6 Image:" run: cd linux/ecosystem/epicmorg/debian/10-buster/jdk6 && pwd && make build && make deploy - name: "Build and Deploy Debian 10 jdk7 Image:" run: cd linux/ecosystem/epicmorg/debian/10-buster/jdk7 && pwd && make build && make deploy - + +################################################################################## + + - name: Cleanup + run: make docker-clean + +################################################################################## + - name: "Build and Deploy Debian 10 jdk8 Image:" run: cd linux/ecosystem/epicmorg/debian/10-buster/jdk8 && pwd && make build && make deploy - name: "Build and Deploy Debian 10 jdk11 Image:" run: cd linux/ecosystem/epicmorg/debian/10-buster/jdk11 && pwd && make build && make deploy +################################################################################## + + - name: Cleanup + run: make docker-clean + +################################################################################## + - name: "Build and Deploy Debian 10 jdk17 Image:" run: cd linux/ecosystem/epicmorg/debian/10-buster/jdk17 && pwd && make build && make deploy - name: "Build and Deploy Debian 10 jdk18 Image:" run: cd linux/ecosystem/epicmorg/debian/10-buster/jdk18 && pwd && make build && make deploy +################################################################################## + + - name: Cleanup + run: make docker-clean + +################################################################################## + - name: "Build and Deploy Debian 10 jdk19 Image:" run: cd linux/ecosystem/epicmorg/debian/10-buster/jdk19 && pwd && make build && make deploy @@ -58,3 +86,5 @@ jobs: - name: Cleanup run: make docker-clean + +################################################################################## diff --git a/.github/workflows/epicmorg.base.images.current.debian11.yml b/.github/workflows/epicmorg.base.images.current.debian11.yml index 37e2712ff..ee0c7aaf6 100644 --- a/.github/workflows/epicmorg.base.images.current.debian11.yml +++ b/.github/workflows/epicmorg.base.images.current.debian11.yml @@ -29,31 +29,66 @@ jobs: - name: "Build and Deploy Debian 11 develop Image:" run: cd linux/ecosystem/epicmorg/debian/11-bullseye/develop && pwd && make build && make deploy - + +################################################################################## + + - name: Cleanup + run: make docker-clean + +################################################################################## + - name: "Build and Deploy Debian 11 jdk6 Image:" run: cd linux/ecosystem/epicmorg/debian/11-bullseye/jdk6 && pwd && make build && make deploy - name: "Build and Deploy Debian 11 jdk7 Image:" run: cd linux/ecosystem/epicmorg/debian/11-bullseye/jdk7 && pwd && make build && make deploy - + +################################################################################## + + - name: Cleanup + run: make docker-clean + +################################################################################## + - name: "Build and Deploy Debian 11 jdk8 Image:" run: cd linux/ecosystem/epicmorg/debian/11-bullseye/jdk8 && pwd && make build && make deploy - name: "Build and Deploy Debian 11 jdk11 Image:" run: cd linux/ecosystem/epicmorg/debian/11-bullseye/jdk11 && pwd && make build && make deploy +################################################################################## + + - name: Cleanup + run: make docker-clean + +################################################################################## + - name: "Build and Deploy Debian 11 jdk17 Image:" run: cd linux/ecosystem/epicmorg/debian/11-bullseye/jdk17 && pwd && make build && make deploy - name: "Build and Deploy Debian 11 jdk18 Image:" run: cd linux/ecosystem/epicmorg/debian/11-bullseye/jdk18 && pwd && make build && make deploy +################################################################################## + + - name: Cleanup + run: make docker-clean + +################################################################################## + - name: "Build and Deploy Debian 11 jdk19 Image:" run: cd linux/ecosystem/epicmorg/debian/11-bullseye/jdk19 && pwd && make build && make deploy - name: "Build and Deploy Debian 11 jdk20 Image:" run: cd linux/ecosystem/epicmorg/debian/11-bullseye/jdk20 && pwd && make build && make deploy +################################################################################## + + - name: Cleanup + run: make docker-clean + +################################################################################## + - name: "Build and Deploy Debian 11 jdk21 Image:" run: cd linux/ecosystem/epicmorg/debian/11-bullseye/jdk21 && pwd && make build && make deploy diff --git a/.github/workflows/epicmorg.base.images.current.debian12.yml b/.github/workflows/epicmorg.base.images.current.debian12.yml index 97845aacb..76b8eb0a0 100644 --- a/.github/workflows/epicmorg.base.images.current.debian12.yml +++ b/.github/workflows/epicmorg.base.images.current.debian12.yml @@ -29,22 +29,50 @@ jobs: - name: "Build and Deploy Debian 12 develop Image:" run: cd linux/ecosystem/epicmorg/debian/12-bookworm/develop && pwd && make build && make deploy - + +################################################################################## + + - name: Cleanup + run: make docker-clean + +################################################################################## + - name: "Build and Deploy Debian 12 jdk6 Image:" run: cd linux/ecosystem/epicmorg/debian/12-bookworm/jdk6 && pwd && make build && make deploy - name: "Build and Deploy Debian 12 jdk7 Image:" run: cd linux/ecosystem/epicmorg/debian/12-bookworm/jdk7 && pwd && make build && make deploy - + +################################################################################## + + - name: Cleanup + run: make docker-clean + +################################################################################## + - name: "Build and Deploy Debian 12 jdk8 Image:" run: cd linux/ecosystem/epicmorg/debian/12-bookworm/jdk8 && pwd && make build && make deploy - name: "Build and Deploy Debian 12 jdk11 Image:" run: cd linux/ecosystem/epicmorg/debian/12-bookworm/jdk11 && pwd && make build && make deploy - + +################################################################################## + + - name: Cleanup + run: make docker-clean + +################################################################################## + - name: "Build and Deploy Debian 12 jdk17 Image:" run: cd linux/ecosystem/epicmorg/debian/12-bookworm/jdk17 && pwd && make build && make deploy +################################################################################## + + - name: Cleanup + run: make docker-clean + +################################################################################## + - name: "Build and Deploy Debian 12 jdk20 Image:" run: cd linux/ecosystem/epicmorg/debian/12-bookworm/jdk20 && pwd && make build && make deploy diff --git a/.github/workflows/epicmorg.base.images.giltab.runners.yml b/.github/workflows/epicmorg.base.images.giltab.runners.yml index 1ead62acf..be0fb87cd 100644 --- a/.github/workflows/epicmorg.base.images.giltab.runners.yml +++ b/.github/workflows/epicmorg.base.images.giltab.runners.yml @@ -45,36 +45,132 @@ jobs: - name: "Build and Deploy Gitlab Runner amxX 1.10 SDK Image:" run: cd linux/ecosystem/gitlab/runner/amxx-sdk/1.10 && pwd && make build && make deploy +################################################################################## + + - name: Cleanup + run: make docker-clean + +################################################################################## + + - name: "Build and Deploy Gitlab Runner Android SDK Image (jdk8):" + run: cd linux/ecosystem/gitlab/runner/android-sdk/jdk8 && pwd && make build && make deploy + +################################################################################## + + - name: Cleanup + run: make docker-clean + +################################################################################## + - name: "Build and Deploy Gitlab Runner Android SDK Image (jdk11):" - run: cd linux/ecosystem/gitlab/runner/android-sdk/jdk11 && pwd && make build && make deploy + run: cd linux/ecosystem/gitlab/runner/android-sdk/jdk11 && pwd && make build && make deploy + +################################################################################## + + - name: Cleanup + run: make docker-clean + +################################################################################## - name: "Build and Deploy Gitlab Runner Android SDK Image (jdk17):" run: cd linux/ecosystem/gitlab/runner/android-sdk/jdk17 && pwd && make build && make deploy +################################################################################## + + - name: Cleanup + run: make docker-clean + +################################################################################## + - name: "Build and Deploy Gitlab Runner Atlassian SDK Image:" run: cd linux/ecosystem/gitlab/runner/atlassian-sdk && pwd && make build && make deploy + +################################################################################## + - name: Cleanup run: make docker-clean +################################################################################## + - name: "Build and Deploy Gitlab Runner dotNet SDK Image:" run: cd linux/ecosystem/gitlab/runner/dotnet-sdk && pwd && make build && make deploy + - name: "Build and Deploy Gitlab Runner node0.12 Image:" + run: cd linux/ecosystem/gitlab/runner/node0.12 && pwd && make build && make deploy + + - name: "Build and Deploy Gitlab Runner node4 Image:" + run: cd linux/ecosystem/gitlab/runner/node4 && pwd && make build && make deploy + +################################################################################## + + - name: Cleanup + run: make docker-clean + +################################################################################## + + - name: "Build and Deploy Gitlab Runner node5 Image:" + run: cd linux/ecosystem/gitlab/runner/node5 && pwd && make build && make deploy + + - name: "Build and Deploy Gitlab Runner node6 Image:" + run: cd linux/ecosystem/gitlab/runner/node6 && pwd && make build && make deploy + + - name: "Build and Deploy Gitlab Runner node7 Image:" + run: cd linux/ecosystem/gitlab/runner/node7 && pwd && make build && make deploy + +################################################################################## + + - name: Cleanup + run: make docker-clean + +################################################################################## + + - name: "Build and Deploy Gitlab Runner node8 Image:" + run: cd linux/ecosystem/gitlab/runner/node8 && pwd && make build && make deploy + + - name: "Build and Deploy Gitlab Runner node9 Image:" + run: cd linux/ecosystem/gitlab/runner/node9 && pwd && make build && make deploy + - name: "Build and Deploy Gitlab Runner node10 Image:" run: cd linux/ecosystem/gitlab/runner/node10 && pwd && make build && make deploy +################################################################################## + + - name: Cleanup + run: make docker-clean + +################################################################################## + + - name: "Build and Deploy Gitlab Runner node11 Image:" + run: cd linux/ecosystem/gitlab/runner/node11 && pwd && make build && make deploy + - name: "Build and Deploy Gitlab Runner node12 Image:" run: cd linux/ecosystem/gitlab/runner/node12 && pwd && make build && make deploy + - name: "Build and Deploy Gitlab Runner node13 Image:" + run: cd linux/ecosystem/gitlab/runner/node13 && pwd && make build && make deploy + +################################################################################## + + - name: Cleanup + run: make docker-clean + +################################################################################## + - name: "Build and Deploy Gitlab Runner node14 Image:" run: cd linux/ecosystem/gitlab/runner/node14 && pwd && make build && make deploy - name: "Build and Deploy Gitlab Runner node15 Image:" run: cd linux/ecosystem/gitlab/runner/node15 && pwd && make build && make deploy + +################################################################################## + - name: Cleanup run: make docker-clean +################################################################################## + - name: "Build and Deploy Gitlab Runner node16 Image:" run: cd linux/ecosystem/gitlab/runner/node16 && pwd && make build && make deploy @@ -84,15 +180,32 @@ jobs: - name: "Build and Deploy Gitlab Runner node18 Image:" run: cd linux/ecosystem/gitlab/runner/node18 && pwd && make build && make deploy +################################################################################## + + - name: Cleanup + run: make docker-clean + +################################################################################## + - name: "Build and Deploy Gitlab Runner node19 Image:" run: cd linux/ecosystem/gitlab/runner/node19 && pwd && make build && make deploy - name: "Build and Deploy Gitlab Runner node20 Image:" run: cd linux/ecosystem/gitlab/runner/node20 && pwd && make build && make deploy + - name: "Build and Deploy Gitlab Runner node21 Image:" + run: cd linux/ecosystem/gitlab/runner/node21 && pwd && make build && make deploy + + - name: "Build and Deploy Gitlab Runner node22 Image:" + run: cd linux/ecosystem/gitlab/runner/node22 && pwd && make build && make deploy + +################################################################################## + - name: Cleanup run: make docker-clean +################################################################################## + - name: "Build and Deploy Gitlab Runner php7.2 Image:" run: cd linux/ecosystem/gitlab/runner/php7.2 && pwd && make build && make deploy @@ -102,15 +215,26 @@ jobs: - name: "Build and Deploy Gitlab Runner php7.4 Image:" run: cd linux/ecosystem/gitlab/runner/php7.4 && pwd && make build && make deploy + +################################################################################## + - name: Cleanup run: make docker-clean +################################################################################## + - name: "Build and Deploy Gitlab Runner php8.0 Image:" run: cd linux/ecosystem/gitlab/runner/php8.0 && pwd && make build && make deploy - name: "Build and Deploy Gitlab Runner php8.1 Image:" run: cd linux/ecosystem/gitlab/runner/php8.1 && pwd && make build && make deploy + - name: "Build and Deploy Gitlab Runner php8.2 Image:" + run: cd linux/ecosystem/gitlab/runner/php8.2 && pwd && make build && make deploy + + - name: "Build and Deploy Gitlab Runner php8.3 Image:" + run: cd linux/ecosystem/gitlab/runner/php8.3 && pwd && make build && make deploy + - name: "Build and Deploy Gitlab Runner Steam SDK Image:" run: cd linux/ecosystem/gitlab/runner/steam-sdk && pwd && make build && make deploy diff --git a/.github/workflows/epicmorg.base.images.legacy.yml b/.github/workflows/epicmorg.base.images.legacy.yml index 50043ea4b..7abb28b36 100644 --- a/.github/workflows/epicmorg.base.images.legacy.yml +++ b/.github/workflows/epicmorg.base.images.legacy.yml @@ -79,6 +79,13 @@ jobs: - name: "Build and Deploy Debian 8 jdk6 Image:" run: cd linux/ecosystem/epicmorg/debian/08-jessie/jdk6 && pwd && make build && make deploy +################################################################################## + + - name: Cleanup + run: make docker-clean + +################################################################################## + - name: "Build and Deploy Debian 8 jdk7 Image:" run: cd linux/ecosystem/epicmorg/debian/08-jessie/jdk7 && pwd && make build && make deploy @@ -91,6 +98,13 @@ jobs: - name: "Build and Deploy Debian 8 jdk17 Image:" run: cd linux/ecosystem/epicmorg/debian/08-jessie/jdk17 && pwd && make build && make deploy +################################################################################## + + - name: Cleanup + run: make docker-clean + +################################################################################## + - name: "Build and Deploy Debian 8 jdk20 Image:" run: cd linux/ecosystem/epicmorg/debian/08-jessie/jdk20 && pwd && make build && make deploy @@ -123,6 +137,13 @@ jobs: - name: "Build and Deploy Debian 9 develop Image:" run: cd linux/ecosystem/epicmorg/debian/09-stretch/develop && pwd && make build && make deploy +################################################################################## + + - name: Cleanup + run: make docker-clean + +################################################################################## + - name: "Build and Deploy Debian 9 jdk6 Image:" run: cd linux/ecosystem/epicmorg/debian/09-stretch/jdk6 && pwd && make build && make deploy @@ -132,6 +153,13 @@ jobs: - name: "Build and Deploy Debian 9 jdk8 Image:" run: cd linux/ecosystem/epicmorg/debian/09-stretch/jdk8 && pwd && make build && make deploy +################################################################################## + + - name: Cleanup + run: make docker-clean + +################################################################################## + - name: "Build and Deploy Debian 9 jdk11 Image:" run: cd linux/ecosystem/epicmorg/debian/09-stretch/jdk11 && pwd && make build && make deploy diff --git a/.github/workflows/epicmorg.base.images.nodejs.yml b/.github/workflows/epicmorg.base.images.nodejs.yml index 7d75bf8d3..ac0444933 100644 --- a/.github/workflows/epicmorg.base.images.nodejs.yml +++ b/.github/workflows/epicmorg.base.images.nodejs.yml @@ -27,50 +27,62 @@ jobs: - name: "Build and Deploy NodeJS Current Image:" run: cd linux/ecosystem/nodejs/current && pwd && make build && make deploy + - name: "Build and Deploy NodeJS 0.12 Image:" + run: cd linux/ecosystem/nodejs/node0.12 && pwd && make build && make deploy + - name: "Build and Deploy NodeJS 4 Image:" - run: cd linux/ecosystem/nodejs/outdated/node4 && pwd && make build && make deploy + run: cd linux/ecosystem/nodejs/node4 && pwd && make build && make deploy + + - name: "Build and Deploy NodeJS 5 Image:" + run: cd linux/ecosystem/nodejs/node5 && pwd && make build && make deploy - name: "Build and Deploy NodeJS 6 Image:" - run: cd linux/ecosystem/nodejs/outdated/node6 && pwd && make build && make deploy + run: cd linux/ecosystem/nodejs/node6 && pwd && make build && make deploy + + - name: "Build and Deploy NodeJS 7 Image:" + run: cd linux/ecosystem/nodejs/node7 && pwd && make build && make deploy - name: "Build and Deploy NodeJS 8 Image:" - run: cd linux/ecosystem/nodejs/outdated/node8 && pwd && make build && make deploy + run: cd linux/ecosystem/nodejs/node8 && pwd && make build && make deploy + + - name: "Build and Deploy NodeJS 9 Image:" + run: cd linux/ecosystem/nodejs/node8 && pwd && make build && make deploy - name: Cleanup run: make docker-clean - name: "Build and Deploy NodeJS 10 Image:" - run: cd linux/ecosystem/nodejs/outdated/node10 && pwd && make build && make deploy + run: cd linux/ecosystem/nodejs/node10 && pwd && make build && make deploy - name: "Build and Deploy NodeJS 11 Image:" - run: cd linux/ecosystem/nodejs/outdated/node11 && pwd && make build && make deploy + run: cd linux/ecosystem/nodejs/node11 && pwd && make build && make deploy - name: "Build and Deploy NodeJS 12 Image:" - run: cd linux/ecosystem/nodejs/outdated/node12 && pwd && make build && make deploy + run: cd linux/ecosystem/nodejs/node12 && pwd && make build && make deploy - name: "Build and Deploy NodeJS 13 Image:" - run: cd linux/ecosystem/nodejs/outdated/node13 && pwd && make build && make deploy + run: cd linux/ecosystem/nodejs/node13 && pwd && make build && make deploy - name: "Build and Deploy NodeJS 14 Image:" - run: cd linux/ecosystem/nodejs/outdated/node14 && pwd && make build && make deploy + run: cd linux/ecosystem/nodejs/node14 && pwd && make build && make deploy - name: "Build and Deploy NodeJS 15 Image:" - run: cd linux/ecosystem/nodejs/outdated/node15 && pwd && make build && make deploy + run: cd linux/ecosystem/nodejs/node15 && pwd && make build && make deploy - name: Cleanup run: make docker-clean - name: "Build and Deploy NodeJS 16 Image:" - run: cd linux/ecosystem/nodejs/outdated/node16 && pwd && make build && make deploy + run: cd linux/ecosystem/nodejs/node16 && pwd && make build && make deploy - name: "Build and Deploy NodeJS 17 Image:" - run: cd linux/ecosystem/nodejs/outdated/node17 && pwd && make build && make deploy + run: cd linux/ecosystem/nodejs/node17 && pwd && make build && make deploy - name: "Build and Deploy NodeJS 18 Image:" - run: cd linux/ecosystem/nodejs/outdated/node18 && pwd && make build && make deploy + run: cd linux/ecosystem/nodejs/node18 && pwd && make build && make deploy - name: "Build and Deploy NodeJS 19 Image:" - run: cd linux/ecosystem/nodejs/outdated/node19 && pwd && make build && make deploy + run: cd linux/ecosystem/nodejs/node19 && pwd && make build && make deploy - name: "Build and Deploy NodeJS 20 Image:" run: cd linux/ecosystem/nodejs/node20 && pwd && make build && make deploy @@ -78,6 +90,9 @@ jobs: - name: "Build and Deploy NodeJS 21 Image:" run: cd linux/ecosystem/nodejs/node21 && pwd && make build && make deploy + - name: "Build and Deploy NodeJS 22 Image:" + run: cd linux/ecosystem/nodejs/node22 && pwd && make build && make deploy + ################################################################################## - name: Cleanup diff --git a/.github/workflows/epicmorg.base.images.perforce.yml b/.github/workflows/epicmorg.base.images.perforce.yml index e8858284b..a9cf72768 100644 --- a/.github/workflows/epicmorg.base.images.perforce.yml +++ b/.github/workflows/epicmorg.base.images.perforce.yml @@ -30,6 +30,13 @@ jobs: - name: "Build and Deploy Perfocre r17.2 Image:" run: cd linux/ecosystem/perforce/base/r17.2 && pwd && make build && make deploy +################################################################################## + + - name: Cleanup + run: make docker-clean + +################################################################################## + - name: "Build and Deploy Perfocre r18.1 Image:" run: cd linux/ecosystem/perforce/base/r18.1 && pwd && make build && make deploy @@ -38,7 +45,14 @@ jobs: - name: "Build and Deploy Perfocre r19.1 Image:" run: cd linux/ecosystem/perforce/base/r19.1 && pwd && make build && make deploy - + +################################################################################## + + - name: Cleanup + run: make docker-clean + +################################################################################## + - name: "Build and Deploy Perfocre r19.2 Image:" run: cd linux/ecosystem/perforce/base/r19.2 && pwd && make build && make deploy @@ -48,6 +62,13 @@ jobs: - name: "Build and Deploy Perfocre r20.2 Image:" run: cd linux/ecosystem/perforce/base/r20.2 && pwd && make build && make deploy +################################################################################## + + - name: Cleanup + run: make docker-clean + +################################################################################## + - name: "Build and Deploy Perfocre r21.1 Image:" run: cd linux/ecosystem/perforce/base/r21.1 && pwd && make build && make deploy @@ -57,6 +78,13 @@ jobs: - name: "Build and Deploy Perfocre r22.1 Image:" run: cd linux/ecosystem/perforce/base/r22.1 && pwd && make build && make deploy +################################################################################## + + - name: Cleanup + run: make docker-clean + +################################################################################## + - name: "Build and Deploy Perfocre r23.1 Image:" run: cd linux/ecosystem/perforce/base/r23.1 && pwd && make build && make deploy @@ -87,6 +115,13 @@ jobs: - name: "Build and Deploy Perfocre Proxy r17.2 Image:" run: cd linux/ecosystem/perforce/p4p/r17.2 && pwd && make build && make deploy +################################################################################## + + - name: Cleanup + run: make docker-clean + +################################################################################## + - name: "Build and Deploy Perfocre Proxy r18.1 Image:" run: cd linux/ecosystem/perforce/p4p/r18.1 && pwd && make build && make deploy @@ -99,6 +134,13 @@ jobs: - name: "Build and Deploy Perfocre Proxy r19.2 Image:" run: cd linux/ecosystem/perforce/p4p/r19.2 && pwd && make build && make deploy +################################################################################## + + - name: Cleanup + run: make docker-clean + +################################################################################## + - name: "Build and Deploy Perfocre Proxy r20.1 Image:" run: cd linux/ecosystem/perforce/p4p/r20.1 && pwd && make build && make deploy @@ -111,6 +153,13 @@ jobs: - name: "Build and Deploy Perfocre Proxy r21.2 Image:" run: cd linux/ecosystem/perforce/p4p/r21.2 && pwd && make build && make deploy +################################################################################## + + - name: Cleanup + run: make docker-clean + +################################################################################## + - name: "Build and Deploy Perfocre Proxy r22.1 Image:" run: cd linux/ecosystem/perforce/p4p/r22.1 && pwd && make build && make deploy diff --git a/.github/workflows/epicmorg.base.images.postgresql.yml b/.github/workflows/epicmorg.base.images.postgresql.yml index 58ddd5384..a4c7a5903 100644 --- a/.github/workflows/epicmorg.base.images.postgresql.yml +++ b/.github/workflows/epicmorg.base.images.postgresql.yml @@ -30,18 +30,37 @@ jobs: - name: "Build and Deploy PostgreSQL 8.4 Image:" run: cd linux/ecosystem/postgres/8.4 && pwd && make build && make deploy +################################################################################## + + - name: Cleanup + run: make docker-clean + +################################################################################## + - name: "Build and Deploy PostgreSQL 9.0 Image:" run: cd linux/ecosystem/postgres/9.0 && pwd && make build && make deploy - name: "Build and Deploy PostgreSQL 9.1 Image:" run: cd linux/ecosystem/postgres/9.1 && pwd && make build && make deploy - - name: "Build and Deploy PostgreSQL 9.2 Image:" - run: cd linux/ecosystem/postgres/9.2 && pwd && make build && make deploy +################################################################################## - name: Cleanup run: make docker-clean +################################################################################## + + - name: "Build and Deploy PostgreSQL 9.2 Image:" + run: cd linux/ecosystem/postgres/9.2 && pwd && make build && make deploy + + +################################################################################## + + - name: Cleanup + run: make docker-clean + +################################################################################## + - name: "Build and Deploy PostgreSQL 9.3 Image:" run: cd linux/ecosystem/postgres/9.3 && pwd && make build && make deploy @@ -51,15 +70,26 @@ jobs: - name: "Build and Deploy PostgreSQL 9.5 Image:" run: cd linux/ecosystem/postgres/9.5 && pwd && make build && make deploy +################################################################################## + + - name: Cleanup + run: make docker-clean + +################################################################################## + - name: "Build and Deploy PostgreSQL 9.6 Image:" run: cd linux/ecosystem/postgres/9.6 && pwd && make build && make deploy - name: "Build and Deploy PostgreSQL 10 Image:" run: cd linux/ecosystem/postgres/10 && pwd && make build && make deploy +################################################################################## + - name: Cleanup run: make docker-clean +################################################################################## + - name: "Build and Deploy PostgreSQL 11 Image:" run: cd linux/ecosystem/postgres/11 && pwd && make build && make deploy @@ -69,6 +99,13 @@ jobs: - name: "Build and Deploy PostgreSQL 13 Image:" run: cd linux/ecosystem/postgres/13 && pwd && make build && make deploy +################################################################################## + + - name: Cleanup + run: make docker-clean + +################################################################################## + - name: "Build and Deploy PostgreSQL 14 Image:" run: cd linux/ecosystem/postgres/14 && pwd && make build && make deploy diff --git a/.github/workflows/epicmorg.base.images.teamcity.agents.yml b/.github/workflows/epicmorg.base.images.teamcity.agents.yml index 5fd6203cd..9e32e2657 100644 --- a/.github/workflows/epicmorg.base.images.teamcity.agents.yml +++ b/.github/workflows/epicmorg.base.images.teamcity.agents.yml @@ -21,8 +21,17 @@ jobs: - name: Test Make run: make - - name: "Build and Deploy TeamCity Agent Main Image:" - run: cd linux/ecosystem/teamcity/agent/latest && pwd && make build && make deploy + - name: "Build and Deploy TeamCity Agent Main Image (jdk8):" + run: cd linux/ecosystem/teamcity/agent/latest/jdk8 && pwd && make build && make deploy + + - name: "Build and Deploy TeamCity Agent Main Image (jdk11):" + run: cd linux/ecosystem/teamcity/agent/latest/jdk11 && pwd && make build && make deploy + + - name: "Build and Deploy TeamCity Agent Main Image (jdk17):" + run: cd linux/ecosystem/teamcity/agent/latest/jdk17 && pwd && make build && make deploy + + - name: "Build and Deploy TeamCity Agent Main Image (jdk21):" + run: cd linux/ecosystem/teamcity/agent/latest/jdk21 && pwd && make build && make deploy ################################################################################## @@ -45,8 +54,14 @@ jobs: - name: "Build and Deploy TeamCity Agent amxX 1.10 SDK Image:" run: cd linux/ecosystem/teamcity/agent/amxx-sdk/1.10 && pwd && make build && make deploy - - name: "Build and Deploy TeamCity Agent Android SDK Image:" - run: cd linux/ecosystem/teamcity/agent/android-sdk && pwd && make build && make deploy + - name: "Build and Deploy TeamCity Agent Android SDK (jdk8) Image:" + run: cd linux/ecosystem/teamcity/agent/android-sdk/jdk8 && pwd && make build && make deploy + + - name: "Build and Deploy TeamCity Agent Android SDK (jdk11) Image:" + run: cd linux/ecosystem/teamcity/agent/android-sdk/jdk1 && pwd && make build && make deploy + + - name: "Build and Deploy TeamCity Agent Android SDK (jdk17) Image:" + run: cd linux/ecosystem/teamcity/agent/android-sdk/jdk7 && pwd && make build && make deploy - name: Cleanup run: make docker-clean @@ -57,12 +72,39 @@ jobs: - name: "Build and Deploy TeamCity Agent dotNet SDK Image:" run: cd linux/ecosystem/teamcity/agent/dotnet-sdk && pwd && make build && make deploy + - name: "Build and Deploy TeamCity Agent node0.12 Image:" + run: cd linux/ecosystem/teamcity/agent/node0.12 && pwd && make build && make deploy + + - name: "Build and Deploy TeamCity Agent node4 Image:" + run: cd linux/ecosystem/teamcity/agent/node4 && pwd && make build && make deploy + + - name: "Build and Deploy TeamCity Agent node5 Image:" + run: cd linux/ecosystem/teamcity/agent/node5 && pwd && make build && make deploy + + - name: "Build and Deploy TeamCity Agent node6 Image:" + run: cd linux/ecosystem/teamcity/agent/node6 && pwd && make build && make deploy + + - name: "Build and Deploy TeamCity Agent node7 Image:" + run: cd linux/ecosystem/teamcity/agent/node7 && pwd && make build && make deploy + + - name: "Build and Deploy TeamCity Agent node8 Image:" + run: cd linux/ecosystem/teamcity/agent/node8 && pwd && make build && make deploy + + - name: "Build and Deploy TeamCity Agent node9 Image:" + run: cd linux/ecosystem/teamcity/agent/node9 && pwd && make build && make deploy + - name: "Build and Deploy TeamCity Agent node10 Image:" run: cd linux/ecosystem/teamcity/agent/node10 && pwd && make build && make deploy + - name: "Build and Deploy TeamCity Agent node11 Image:" + run: cd linux/ecosystem/teamcity/agent/node11 && pwd && make build && make deploy + - name: "Build and Deploy TeamCity Agent node12 Image:" run: cd linux/ecosystem/teamcity/agent/node12 && pwd && make build && make deploy + - name: "Build and Deploy TeamCity Agent node13 Image:" + run: cd linux/ecosystem/teamcity/agent/node13 && pwd && make build && make deploy + - name: "Build and Deploy TeamCity Agent node14 Image:" run: cd linux/ecosystem/teamcity/agent/node14 && pwd && make build && make deploy @@ -90,6 +132,12 @@ jobs: - name: "Build and Deploy TeamCity Agent node20 Image:" run: cd linux/ecosystem/teamcity/agent/node20 && pwd && make build && make deploy + - name: "Build and Deploy TeamCity Agent node21 Image:" + run: cd linux/ecosystem/teamcity/agent/node21 && pwd && make build && make deploy + + - name: "Build and Deploy TeamCity Agent node22 Image:" + run: cd linux/ecosystem/teamcity/agent/node22 && pwd && make build && make deploy + - name: "Build and Deploy TeamCity Agent php7.2 Image:" run: cd linux/ecosystem/teamcity/agent/php7.2 && pwd && make build && make deploy @@ -108,6 +156,12 @@ jobs: - name: "Build and Deploy TeamCity Agent php8.1 Image:" run: cd linux/ecosystem/teamcity/agent/php8.1 && pwd && make build && make deploy + - name: "Build and Deploy TeamCity Agent php8.2 Image:" + run: cd linux/ecosystem/teamcity/agent/php8.2 && pwd && make build && make deploy + + - name: "Build and Deploy TeamCity Agent php8.3 Image:" + run: cd linux/ecosystem/teamcity/agent/php8.3 && pwd && make build && make deploy + - name: "Build and Deploy TeamCity Agent Steam SDK Image:" run: cd linux/ecosystem/teamcity/agent/steam-sdk && pwd && make build && make deploy diff --git a/.github/workflows/epicmorg.base.images.web.yml b/.github/workflows/epicmorg.base.images.web.yml index 5ebf8aff9..6b7d7a8f1 100644 --- a/.github/workflows/epicmorg.base.images.web.yml +++ b/.github/workflows/epicmorg.base.images.web.yml @@ -36,6 +36,13 @@ jobs: - name: "Build and Deploy PHP 7.3 Image:" run: cd linux/ecosystem/php/php7.3 && pwd && make build && make deploy +################################################################################## + + - name: Cleanup + run: make docker-clean + +################################################################################## + - name: "Build and Deploy PHP 7.4 Image:" run: cd linux/ecosystem/php/php7.4 && pwd && make build && make deploy @@ -45,6 +52,13 @@ jobs: - name: "Build and Deploy PHP 8.1 Image:" run: cd linux/ecosystem/php/php8.1 && pwd && make build && make deploy +################################################################################## + + - name: Cleanup + run: make docker-clean + +################################################################################## + - name: "Build and Deploy PHP 8.2 Image:" run: cd linux/ecosystem/php/php8.2 && pwd && make build && make deploy @@ -78,6 +92,13 @@ jobs: - name: "Build and Deploy Apache 2 + PHP 7.2 Image:" run: cd linux/ecosystem/apache2/php7.2 && pwd && make build && make deploy +################################################################################## + + - name: Cleanup + run: make docker-clean + +################################################################################## + - name: "Build and Deploy Apache 2 + PHP 7.3 Image:" run: cd linux/ecosystem/apache2/php7.3 && pwd && make build && make deploy @@ -87,6 +108,13 @@ jobs: - name: "Build and Deploy Apache 2 + PHP 8.0 Image:" run: cd linux/ecosystem/apache2/php8.0 && pwd && make build && make deploy +################################################################################## + + - name: Cleanup + run: make docker-clean + +################################################################################## + - name: "Build and Deploy Apache 2 + PHP 8.1 Image:" run: cd linux/ecosystem/apache2/php8.1 && pwd && make build && make deploy diff --git a/.github/workflows/epicmorg.ecosysctem.misc.images.yml b/.github/workflows/epicmorg.ecosysctem.misc.images.yml index d66f8b5e7..b13ea6943 100644 --- a/.github/workflows/epicmorg.ecosysctem.misc.images.yml +++ b/.github/workflows/epicmorg.ecosysctem.misc.images.yml @@ -81,8 +81,15 @@ jobs: - name: Build and Deploy qBittorrent 4.4.2 run: cd linux/ecosystem/qbittorrent/4.4.2 && make build && make deploy - - name: Build and Deploy qBittorrent 4.4.3 - run: cd linux/ecosystem/qbittorrent/4.4.3 && make build && make deploy + - name: Build and Deploy qBittorrent 4.4.3.1 + run: cd linux/ecosystem/qbittorrent/4.4.3.1 && make build && make deploy + +################################################################################## + + - name: Cleanup + run: make docker-clean + +################################################################################## - name: Build and Deploy qBittorrent 4.4.4 run: cd linux/ecosystem/qbittorrent/4.4.4 && make build && make deploy @@ -96,6 +103,13 @@ jobs: - name: Build and Deploy qBittorrent 4.5.1 run: cd linux/ecosystem/qbittorrent/4.5.1 && make build && make deploy +################################################################################## + + - name: Cleanup + run: make docker-clean + +################################################################################## + - name: Build and Deploy qBittorrent 4.5.2 run: cd linux/ecosystem/qbittorrent/4.5.2 && make build && make deploy @@ -105,6 +119,13 @@ jobs: - name: Build and Deploy qBittorrent 4.5.4 run: cd linux/ecosystem/qbittorrent/4.5.4 && make build && make deploy +################################################################################## + + - name: Cleanup + run: make docker-clean + +################################################################################## + - name: Build and Deploy qBittorrent 4.5.5 run: cd linux/ecosystem/qbittorrent/4.5.5 && make build && make deploy @@ -114,12 +135,25 @@ jobs: - name: Build and Deploy qBittorrent 4.6.1 run: cd linux/ecosystem/qbittorrent/4.6.1 && make build && make deploy +################################################################################## + + - name: Cleanup + run: make docker-clean + +################################################################################## + - name: Build and Deploy qBittorrent 4.6.2 run: cd linux/ecosystem/qbittorrent/4.6.2 && make build && make deploy - name: Build and Deploy qBittorrent 4.6.3 run: cd linux/ecosystem/qbittorrent/4.6.3 && make build && make deploy + - name: Build and Deploy qBittorrent 4.6.4 + run: cd linux/ecosystem/qbittorrent/4.6.4 && make build && make deploy + + - name: Build and Deploy qBittorrent Testing + run: cd linux/ecosystem/qbittorrent/testing && make build && make deploy + ################################################################################## build-opentracker-image: @@ -150,9 +184,9 @@ jobs: - name: Test Make run: make - - - name: Build and Deploy reTracker - run: cd linux/ecosystem/retracker && make build && make deploy +# to rework +# - name: Build and Deploy reTracker +# run: cd linux/ecosystem/retracker && make build && make deploy ################################################################################## @@ -170,9 +204,9 @@ jobs: - name: Build and Deploy Torrust Tracker run: cd linux/ecosystem/torrust-tracker && make build && make deploy - - - name: Build and Deploy Torrust Index - run: cd linux/ecosystem/torrust-index && make build && make deploy +# to rework +# - name: Build and Deploy Torrust Index +# run: cd linux/ecosystem/torrust-index && make build && make deploy ################################################################################## diff --git a/CHANGELOG.md b/CHANGELOG.md index d04a4f527..df0e92547 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,7 +1,22 @@ # Changelog ## 2024 -* `mar-apr` +* `jun` + * impoverd `nodejs 0-22` base images. + * deprecated installation via package manager. + * installation from archive. + * added `pnpm` to `nodejs 4-22` images + * updated `nextcloud` to `29` version. + * reworked `gitlab` images. + * reworked `teamcity-agent` images. + * impoverd `php` base images, added `nodejs` lts support via special tag. + * reworked all imajes contaned any `jdk`. + * deprecated installation via package manager. + * installation from archive. +* `mar-apr-may` * impoverd `postgres 10-16` images. + * added `timescaledb` supprot to `postgres 11-16` images. + * `postgres` images migrated from `bullseye` to `bookworm` image. + * updated `qbittorrent` iamges. added `testing` (rolling) release image. * `feb` * added `astralinux` `1.7` `se` base images - `slim`, `main` and `develop`. * updated images: fixes of sources.list, java install logic, updated `python 3.12` iamges diff --git a/Makefile b/Makefile index 07e7a7a18..7d21cb2f1 100644 --- a/Makefile +++ b/Makefile @@ -214,6 +214,7 @@ advanced-nextcloud-images: cd `pwd`/linux/advanced/nextcloud/pure/26 && pwd && make build && make deploy cd `pwd`/linux/advanced/nextcloud/pure/27 && pwd && make build && make deploy cd `pwd`/linux/advanced/nextcloud/pure/28 && pwd && make build && make deploy + cd `pwd`/linux/advanced/nextcloud/pure/29 && pwd && make build && make deploy advanced-nextcloud-patched-images: cd `pwd`/linux/advanced/nextcloud/patched/14 && pwd && make build && make deploy @@ -231,6 +232,7 @@ advanced-nextcloud-patched-images: cd `pwd`/linux/advanced/nextcloud/patched/26 && pwd && make build && make deploy cd `pwd`/linux/advanced/nextcloud/patched/27 && pwd && make build && make deploy cd `pwd`/linux/advanced/nextcloud/patched/28 && pwd && make build && make deploy + cd `pwd`/linux/advanced/nextcloud/patched/29 && pwd && make build && make deploy ecosystem-images: make bundle-base-images @@ -580,21 +582,26 @@ ecosystem-nodejs-images: cd `pwd`/linux/ecosystem/nodejs/current && pwd && make build && make deploy cd `pwd`/linux/ecosystem/nodejs/lts && pwd && make build && make deploy + cd `pwd`/linux/ecosystem/nodejs/node0.12 && pwd && make build && make deploy + cd `pwd`/linux/ecosystem/nodejs/node4 && pwd && make build && make deploy + cd `pwd`/linux/ecosystem/nodejs/node5 && pwd && make build && make deploy + cd `pwd`/linux/ecosystem/nodejs/node6 && pwd && make build && make deploy + cd `pwd`/linux/ecosystem/nodejs/node7 && pwd && make build && make deploy + cd `pwd`/linux/ecosystem/nodejs/node8 && pwd && make build && make deploy + cd `pwd`/linux/ecosystem/nodejs/node9 && pwd && make build && make deploy + cd `pwd`/linux/ecosystem/nodejs/node10 && pwd && make build && make deploy + cd `pwd`/linux/ecosystem/nodejs/node11 && pwd && make build && make deploy + cd `pwd`/linux/ecosystem/nodejs/node12 && pwd && make build && make deploy + cd `pwd`/linux/ecosystem/nodejs/node13 && pwd && make build && make deploy + cd `pwd`/linux/ecosystem/nodejs/node14 && pwd && make build && make deploy + cd `pwd`/linux/ecosystem/nodejs/node15 && pwd && make build && make deploy + cd `pwd`/linux/ecosystem/nodejs/node16 && pwd && make build && make deploy + cd `pwd`/linux/ecosystem/nodejs/node17 && pwd && make build && make deploy + cd `pwd`/linux/ecosystem/nodejs/node18 && pwd && make build && make deploy + cd `pwd`/linux/ecosystem/nodejs/node19 && pwd && make build && make deploy cd `pwd`/linux/ecosystem/nodejs/node20 && pwd && make build && make deploy cd `pwd`/linux/ecosystem/nodejs/node21 && pwd && make build && make deploy - cd `pwd`/linux/ecosystem/nodejs/outdated/node4 && pwd && make build && make deploy - cd `pwd`/linux/ecosystem/nodejs/outdated/node6 && pwd && make build && make deploy - cd `pwd`/linux/ecosystem/nodejs/outdated/node8 && pwd && make build && make deploy - cd `pwd`/linux/ecosystem/nodejs/outdated/node10 && pwd && make build && make deploy - cd `pwd`/linux/ecosystem/nodejs/outdated/node11 && pwd && make build && make deploy - cd `pwd`/linux/ecosystem/nodejs/outdated/node12 && pwd && make build && make deploy - cd `pwd`/linux/ecosystem/nodejs/outdated/node13 && pwd && make build && make deploy - cd `pwd`/linux/ecosystem/nodejs/outdated/node14 && pwd && make build && make deploy - cd `pwd`/linux/ecosystem/nodejs/outdated/node15 && pwd && make build && make deploy - cd `pwd`/linux/ecosystem/nodejs/outdated/node16 && pwd && make build && make deploy - cd `pwd`/linux/ecosystem/nodejs/outdated/node17 && pwd && make build && make deploy - cd `pwd`/linux/ecosystem/nodejs/outdated/node18 && pwd && make build && make deploy - cd `pwd`/linux/ecosystem/nodejs/outdated/node19 && pwd && make build && make deploy + cd `pwd`/linux/ecosystem/nodejs/node22 && pwd && make build && make deploy ecosystem-ninjam-image: cd `pwd`/linux/ecosystem/ninjam/latest && pwd && make build && make deploy @@ -619,6 +626,8 @@ ecosystem-qbittorrent-images: cd `pwd`/linux/ecosystem/qbittorrent/4.6.1 && pwd && make build && make deploy cd `pwd`/linux/ecosystem/qbittorrent/4.6.2 && pwd && make build && make deploy cd `pwd`/linux/ecosystem/qbittorrent/4.6.3 && pwd && make build && make deploy + cd `pwd`/linux/ecosystem/qbittorrent/4.6.4 && pwd && make build && make deploy + cd `pwd`/linux/ecosystem/qbittorrent/testing && pwd && make build && make deploy ecosystem-retracker-images: cd `pwd`/linux/ecosystem/retracker && pwd && make build && make deploy @@ -655,16 +664,27 @@ ecosystem-postgres-images: cd `pwd`/linux/ecosystem/postgres/16 && pwd && make build && make deploy ecosystem-teamcity-agent-images: + cd `pwd`/linux/ecosystem/teamcity/agent/latest/jdk8 && pwd && make build && make deploy cd `pwd`/linux/ecosystem/teamcity/agent/latest/jdk11 && pwd && make build && make deploy cd `pwd`/linux/ecosystem/teamcity/agent/latest/jdk17 && pwd && make build && make deploy cd `pwd`/linux/ecosystem/teamcity/agent/amxx-sdk/1.9 && pwd && make build && make deploy cd `pwd`/linux/ecosystem/teamcity/agent/amxx-sdk/1.10 && pwd && make build && make deploy + cd `pwd`/linux/ecosystem/teamcity/agent/android-sdk/jdk8 && pwd && make build && make deploy cd `pwd`/linux/ecosystem/teamcity/agent/android-sdk/jdk11 && pwd && make build && make deploy cd `pwd`/linux/ecosystem/teamcity/agent/android-sdk/jdk17 && pwd && make build && make deploy cd `pwd`/linux/ecosystem/teamcity/agent/atlassian-sdk && pwd && make build && make deploy cd `pwd`/linux/ecosystem/teamcity/agent/dotnet-sdk && pwd && make build && make deploy + cd `pwd`/linux/ecosystem/teamcity/agent/node0.12 && pwd && make build && make deploy + cd `pwd`/linux/ecosystem/teamcity/agent/node4 && pwd && make build && make deploy + cd `pwd`/linux/ecosystem/teamcity/agent/node5 && pwd && make build && make deploy + cd `pwd`/linux/ecosystem/teamcity/agent/node6 && pwd && make build && make deploy + cd `pwd`/linux/ecosystem/teamcity/agent/node7 && pwd && make build && make deploy + cd `pwd`/linux/ecosystem/teamcity/agent/node8 && pwd && make build && make deploy + cd `pwd`/linux/ecosystem/teamcity/agent/node9 && pwd && make build && make deploy cd `pwd`/linux/ecosystem/teamcity/agent/node10 && pwd && make build && make deploy + cd `pwd`/linux/ecosystem/teamcity/agent/node11 && pwd && make build && make deploy cd `pwd`/linux/ecosystem/teamcity/agent/node12 && pwd && make build && make deploy + cd `pwd`/linux/ecosystem/teamcity/agent/node13 && pwd && make build && make deploy cd `pwd`/linux/ecosystem/teamcity/agent/node14 && pwd && make build && make deploy cd `pwd`/linux/ecosystem/teamcity/agent/node15 && pwd && make build && make deploy cd `pwd`/linux/ecosystem/teamcity/agent/node16 && pwd && make build && make deploy @@ -673,23 +693,36 @@ ecosystem-teamcity-agent-images: cd `pwd`/linux/ecosystem/teamcity/agent/node19 && pwd && make build && make deploy cd `pwd`/linux/ecosystem/teamcity/agent/node20 && pwd && make build && make deploy cd `pwd`/linux/ecosystem/teamcity/agent/node21 && pwd && make build && make deploy + cd `pwd`/linux/ecosystem/teamcity/agent/node22 && pwd && make build && make deploy cd `pwd`/linux/ecosystem/teamcity/agent/php7.2 && pwd && make build && make deploy cd `pwd`/linux/ecosystem/teamcity/agent/php7.3 && pwd && make build && make deploy cd `pwd`/linux/ecosystem/teamcity/agent/php7.4 && pwd && make build && make deploy cd `pwd`/linux/ecosystem/teamcity/agent/php8.0 && pwd && make build && make deploy cd `pwd`/linux/ecosystem/teamcity/agent/php8.1 && pwd && make build && make deploy + cd `pwd`/linux/ecosystem/teamcity/agent/php8.2 && pwd && make build && make deploy + cd `pwd`/linux/ecosystem/teamcity/agent/php8.3 && pwd && make build && make deploy cd `pwd`/linux/ecosystem/teamcity/agent/steam-sdk && pwd && make build && make deploy ecosystem-gitlab-runner-images: cd `pwd`/linux/ecosystem/gitlab/runner/latest && pwd && make build && make deploy cd `pwd`/linux/ecosystem/gitlab/runner/amxx-sdk/1.9 && pwd && make build && make deploy cd `pwd`/linux/ecosystem/gitlab/runner/amxx-sdk/1.10 && pwd && make build && make deploy + cd `pwd`/linux/ecosystem/gitlab/runner/android-sdk/jdk8 && pwd && make build && make deploy cd `pwd`/linux/ecosystem/gitlab/runner/android-sdk/jdk11 && pwd && make build && make deploy cd `pwd`/linux/ecosystem/gitlab/runner/android-sdk/jdk17 && pwd && make build && make deploy cd `pwd`/linux/ecosystem/gitlab/runner/atlassian-sdk && pwd && make build && make deploy cd `pwd`/linux/ecosystem/gitlab/runner/dotnet-sdk && pwd && make build && make deploy + cd `pwd`/linux/ecosystem/gitlab/runner/node0.12 && pwd && make build && make deploy + cd `pwd`/linux/ecosystem/gitlab/runner/node4 && pwd && make build && make deploy + cd `pwd`/linux/ecosystem/gitlab/runner/node5 && pwd && make build && make deploy + cd `pwd`/linux/ecosystem/gitlab/runner/node6 && pwd && make build && make deploy + cd `pwd`/linux/ecosystem/gitlab/runner/node7 && pwd && make build && make deploy + cd `pwd`/linux/ecosystem/gitlab/runner/node8 && pwd && make build && make deploy + cd `pwd`/linux/ecosystem/gitlab/runner/node9 && pwd && make build && make deploy cd `pwd`/linux/ecosystem/gitlab/runner/node10 && pwd && make build && make deploy + cd `pwd`/linux/ecosystem/gitlab/runner/node11 && pwd && make build && make deploy cd `pwd`/linux/ecosystem/gitlab/runner/node12 && pwd && make build && make deploy + cd `pwd`/linux/ecosystem/gitlab/runner/node13 && pwd && make build && make deploy cd `pwd`/linux/ecosystem/gitlab/runner/node14 && pwd && make build && make deploy cd `pwd`/linux/ecosystem/gitlab/runner/node15 && pwd && make build && make deploy cd `pwd`/linux/ecosystem/gitlab/runner/node16 && pwd && make build && make deploy @@ -698,10 +731,13 @@ ecosystem-gitlab-runner-images: cd `pwd`/linux/ecosystem/gitlab/runner/node19 && pwd && make build && make deploy cd `pwd`/linux/ecosystem/gitlab/runner/node20 && pwd && make build && make deploy cd `pwd`/linux/ecosystem/gitlab/runner/node21 && pwd && make build && make deploy + cd `pwd`/linux/ecosystem/gitlab/runner/node22 && pwd && make build && make deploy cd `pwd`/linux/ecosystem/gitlab/runner/php7.2 && pwd && make build && make deploy cd `pwd`/linux/ecosystem/gitlab/runner/php7.3 && pwd && make build && make deploy cd `pwd`/linux/ecosystem/gitlab/runner/php7.4 && pwd && make build && make deploy cd `pwd`/linux/ecosystem/gitlab/runner/php8.1 && pwd && make build && make deploy + cd `pwd`/linux/ecosystem/gitlab/runner/php8.2 && pwd && make build && make deploy + cd `pwd`/linux/ecosystem/gitlab/runner/php8.3 && pwd && make build && make deploy cd `pwd`/linux/ecosystem/gitlab/runner/steam-sdk && pwd && make build && make deploy ecosystem-nginx-images: diff --git a/linux/advanced/nextcloud/patched/29/Dockerfile b/linux/advanced/nextcloud/patched/29/Dockerfile new file mode 100644 index 000000000..56dc5cd3c --- /dev/null +++ b/linux/advanced/nextcloud/patched/29/Dockerfile @@ -0,0 +1,8 @@ +FROM epicmorg/nextcloud:29 + +################################################################## +# thank u, mac users. rolling back normal ZipStreammer +################################################################## +RUN rm -frv /usr/src/nextcloud/lib/private/Streamer.php +ADD Streamer.php /usr/src/nextcloud/lib/private/ +RUN chown nobody:nogroup /usr/src/nextcloud/lib/private/Streamer.php diff --git a/linux/ecosystem/nodejs/outdated/node10/Makefile b/linux/advanced/nextcloud/patched/29/Makefile similarity index 100% rename from linux/ecosystem/nodejs/outdated/node10/Makefile rename to linux/advanced/nextcloud/patched/29/Makefile diff --git a/linux/advanced/nextcloud/patched/29/README.md b/linux/advanced/nextcloud/patched/29/README.md new file mode 100644 index 000000000..b6df71808 --- /dev/null +++ b/linux/advanced/nextcloud/patched/29/README.md @@ -0,0 +1,527 @@ +# What is Nextcloud? + +[![GitHub CI build status badge](https://github.com/nextcloud/docker/workflows/Images/badge.svg)](https://github.com/nextcloud/docker/actions?query=workflow%3AImages) +[![update.sh build status badge](https://github.com/nextcloud/docker/workflows/update.sh/badge.svg)](https://github.com/nextcloud/docker/actions?query=workflow%3Aupdate.sh) +[![amd64 build status badge](https://img.shields.io/jenkins/s/https/doi-janky.infosiftr.net/job/multiarch/job/amd64/job/nextcloud.svg?label=amd64)](https://doi-janky.infosiftr.net/job/multiarch/job/amd64/job/nextcloud) +[![arm32v5 build status badge](https://img.shields.io/jenkins/s/https/doi-janky.infosiftr.net/job/multiarch/job/arm32v5/job/nextcloud.svg?label=arm32v5)](https://doi-janky.infosiftr.net/job/multiarch/job/arm32v5/job/nextcloud) +[![arm32v6 build status badge](https://img.shields.io/jenkins/s/https/doi-janky.infosiftr.net/job/multiarch/job/arm32v6/job/nextcloud.svg?label=arm32v6)](https://doi-janky.infosiftr.net/job/multiarch/job/arm32v6/job/nextcloud) +[![arm32v7 build status badge](https://img.shields.io/jenkins/s/https/doi-janky.infosiftr.net/job/multiarch/job/arm32v7/job/nextcloud.svg?label=arm32v7)](https://doi-janky.infosiftr.net/job/multiarch/job/arm32v7/job/nextcloud) +[![arm64v8 build status badge](https://img.shields.io/jenkins/s/https/doi-janky.infosiftr.net/job/multiarch/job/arm64v8/job/nextcloud.svg?label=arm64v8)](https://doi-janky.infosiftr.net/job/multiarch/job/arm64v8/job/nextcloud) +[![i386 build status badge](https://img.shields.io/jenkins/s/https/doi-janky.infosiftr.net/job/multiarch/job/i386/job/nextcloud.svg?label=i386)](https://doi-janky.infosiftr.net/job/multiarch/job/i386/job/nextcloud) +[![mips64le build status badge](https://img.shields.io/jenkins/s/https/doi-janky.infosiftr.net/job/multiarch/job/mips64le/job/nextcloud.svg?label=mips64le)](https://doi-janky.infosiftr.net/job/multiarch/job/mips64le/job/nextcloud) +[![ppc64le build status badge](https://img.shields.io/jenkins/s/https/doi-janky.infosiftr.net/job/multiarch/job/ppc64le/job/nextcloud.svg?label=ppc64le)](https://doi-janky.infosiftr.net/job/multiarch/job/ppc64le/job/nextcloud) +[![s390x build status badge](https://img.shields.io/jenkins/s/https/doi-janky.infosiftr.net/job/multiarch/job/s390x/job/nextcloud.svg?label=s390x)](https://doi-janky.infosiftr.net/job/multiarch/job/s390x/job/nextcloud) + +A safe home for all your data. Access & share your files, calendars, contacts, mail & more from any device, on your terms. + +![logo](https://cdn.rawgit.com/nextcloud/docker/80dd587d847b184ba95d7187a2a7a56ae4cbbb7b/logo.svg) + +# How to use this image +This image is designed to be used in a micro-service environment. There are two versions of the image you can choose from. + +The `apache` tag contains a full Nextcloud installation including an apache web server. It is designed to be easy to use and gets you running pretty fast. This is also the default for the `latest` tag and version tags that are not further specified. + +The second option is a `fpm` container. It is based on the [php-fpm](https://hub.docker.com/_/php/) image and runs a fastCGI-Process that serves your Nextcloud page. To use this image it must be combined with any webserver that can proxy the http requests to the FastCGI-port of the container. + +[![Try in PWD](https://github.com/play-with-docker/stacks/raw/cff22438cb4195ace27f9b15784bbb497047afa7/assets/images/button.png)](http://play-with-docker.com?stack=https://raw.githubusercontent.com/nextcloud/docker/8db861d67f257a3e9ac1790ea06d4e2a7a193a6c/stack.yml) + +## Using the apache image +The apache image contains a webserver and exposes port 80. To start the container type: + +```console +$ docker run -d -p 8080:80 nextcloud +``` + +Now you can access Nextcloud at http://localhost:8080/ from your host system. + + +## Using the fpm image +To use the fpm image, you need an additional web server that can proxy http-request to the fpm-port of the container. For fpm connection this container exposes port 9000. In most cases, you might want use another container or your host as proxy. +If you use your host you can address your Nextcloud container directly on port 9000. If you use another container, make sure that you add them to the same docker network (via `docker run --network ...` or a `docker-compose` file). +In both cases you don't want to map the fpm port to your host. + +```console +$ docker run -d nextcloud:fpm +``` + +As the fastCGI-Process is not capable of serving static files (style sheets, images, ...), the webserver needs access to these files. This can be achieved with the `volumes-from` option. You can find more information in the [docker-compose section](#running-this-image-with-docker-compose). + +## Using an external database +By default, this container uses SQLite for data storage but the Nextcloud setup wizard (appears on first run) allows connecting to an existing MySQL/MariaDB or PostgreSQL database. You can also link a database container, e. g. `--link my-mysql:mysql`, and then use `mysql` as the database host on setup. More info is in the docker-compose section. + +## Persistent data +The Nextcloud installation and all data beyond what lives in the database (file uploads, etc) are stored in the [unnamed docker volume](https://docs.docker.com/engine/tutorials/dockervolumes/#adding-a-data-volume) volume `/var/www/html`. The docker daemon will store that data within the docker directory `/var/lib/docker/volumes/...`. That means your data is saved even if the container crashes, is stopped or deleted. + +A named Docker volume or a mounted host directory should be used for upgrades and backups. To achieve this, you need one volume for your database container and one for Nextcloud. + +Nextcloud: +- `/var/www/html/` folder where all nextcloud data lives +```console +$ docker run -d \ +-v nextcloud:/var/www/html \ +nextcloud +``` + +Database: +- `/var/lib/mysql` MySQL / MariaDB Data +- `/var/lib/postgresql/data` PostgreSQL Data +```console +$ docker run -d \ +-v db:/var/lib/mysql \ +mariadb +``` + +If you want to get fine grained access to your individual files, you can mount additional volumes for data, config, your theme and custom apps. +The `data`, `config` files are stored in respective subfolders inside `/var/www/html/`. The apps are split into core `apps` (which are shipped with Nextcloud and you don't need to take care of) and a `custom_apps` folder. If you use a custom theme it would go into the `themes` subfolder. + +Overview of the folders that can be mounted as volumes: + +- `/var/www/html` Main folder, needed for updating +- `/var/www/html/custom_apps` installed / modified apps +- `/var/www/html/config` local configuration +- `/var/www/html/data` the actual data of your Nextcloud +- `/var/www/html/themes/` theming/branding + +If you want to use named volumes for all of these, it would look like this: +```console +$ docker run -d \ +-v nextcloud:/var/www/html \ +-v apps:/var/www/html/custom_apps \ +-v config:/var/www/html/config \ +-v data:/var/www/html/data \ +-v theme:/var/www/html/themes/ \ +nextcloud +``` + +## Using the Nextcloud command-line interface +To use the [Nextcloud command-line interface](https://docs.nextcloud.com/server/latest/admin_manual/configuration_server/occ_command.html) (aka. `occ` command): +```console +$ docker exec --user www-data CONTAINER_ID php occ +``` +or for docker-compose: +```console +$ docker-compose exec --user www-data app php occ +``` + +## Auto configuration via environment variables +The nextcloud image supports auto configuration via environment variables. You can preconfigure everything that is asked on the install page on first run. To enable auto configuration, set your database connection via the following environment variables. ONLY use one database type! + +__SQLite__: +- `SQLITE_DATABASE` Name of the database using sqlite + +__MYSQL/MariaDB__: +- `MYSQL_DATABASE` Name of the database using mysql / mariadb. +- `MYSQL_USER` Username for the database using mysql / mariadb. +- `MYSQL_PASSWORD` Password for the database user using mysql / mariadb. +- `MYSQL_HOST` Hostname of the database server using mysql / mariadb. + +__PostgreSQL__: +- `POSTGRES_DB` Name of the database using postgres. +- `POSTGRES_USER` Username for the database using postgres. +- `POSTGRES_PASSWORD` Password for the database user using postgres. +- `POSTGRES_HOST` Hostname of the database server using postgres. + +If you set any values, they will not be asked in the install page on first run. With a complete configuration by using all variables for your database type, you can additionally configure your Nextcloud instance by setting admin user and password (only works if you set both): + +- `NEXTCLOUD_ADMIN_USER` Name of the Nextcloud admin user. +- `NEXTCLOUD_ADMIN_PASSWORD` Password for the Nextcloud admin user. + +If you want, you can set the data directory, otherwise default value will be used. + +- `NEXTCLOUD_DATA_DIR` (default: _/var/www/html/data_) Configures the data directory where nextcloud stores all files from the users. + +One or more trusted domains can be set through environment variable, too. They will be added to the configuration after install. + +- `NEXTCLOUD_TRUSTED_DOMAINS` (not set by default) Optional space-separated list of domains + +The install and update script is only triggered when a default command is used (`apache-foreground` or `php-fpm`). If you use a custom command you have to enable the install / update with + +- `NEXTCLOUD_UPDATE` (default: _0_) + +If you want to use Redis you have to create a separate [Redis](https://hub.docker.com/_/redis/) container in your setup / in your docker-compose file. To inform Nextcloud about the Redis container, pass in the following parameters: + +- `REDIS_HOST` (not set by default) Name of Redis container +- `REDIS_HOST_PORT` (default: _6379_) Optional port for Redis, only use for external Redis servers that run on non-standard ports. +- `REDIS_HOST_PASSWORD` (not set by default) Redis password + +The use of Redis is recommended to prevent file locking problems. See the examples for further instructions. + +To use an external SMTP server, you have to provide the connection details. To configure Nextcloud to use SMTP add: + +- `SMTP_HOST` (not set by default): The hostname of the SMTP server. +- `SMTP_SECURE` (empty by default): Set to `ssl` to use SSL, or `tls` to use STARTTLS. +- `SMTP_PORT` (default: `465` for SSL and `25` for non-secure connections): Optional port for the SMTP connection. Use `587` for an alternative port for STARTTLS. +- `SMTP_AUTHTYPE` (default: `LOGIN`): The method used for authentication. Use `PLAIN` if no authentication is required. +- `SMTP_NAME` (empty by default): The username for the authentication. +- `SMTP_PASSWORD` (empty by default): The password for the authentication. +- `MAIL_FROM_ADDRESS` (not set by default): Use this address for the 'from' field in the emails sent by Nextcloud. +- `MAIL_DOMAIN` (not set by default): Set a different domain for the emails than the domain where Nextcloud is installed. + +Check the [Nextcloud documentation](https://docs.nextcloud.com/server/latest/admin_manual/configuration_server/email_configuration.html) for other values to configure SMTP. + +To use an external S3 compatible object store as primary storage, set the following variables: +- `OBJECTSTORE_S3_HOST`: The hostname of the object storage server +- `OBJECTSTORE_S3_BUCKET`: The name of the bucket that Nextcloud should store the data in +- `OBJECTSTORE_S3_KEY`: AWS style access key +- `OBJECTSTORE_S3_SECRET`: AWS style secret access key +- `OBJECTSTORE_S3_PORT`: The port that the object storage server is being served over +- `OBJECTSTORE_S3_SSL` (default: `true`): Whether or not SSL/TLS should be used to communicate with object storage server +- `OBJECTSTORE_S3_REGION`: The region that the S3 bucket resides in. +- `OBJECTSTORE_S3_USEPATH_STYLE` (default: `false`): Not required for AWS S3 + +Check the [Nextcloud documentation](https://docs.nextcloud.com/server/latest/admin_manual/configuration_files/primary_storage.html#simple-storage-service-s3) for more information. + +To use an external OpenStack Swift object store as primary storage, set the following variables: +- `OBJECTSTORE_SWIFT_URL`: The Swift identity (Keystone) endpoint +- `OBJECTSTORE_SWIFT_AUTOCREATE` (default: `false`): Whether or not Nextcloud should automatically create the Swift container +- `OBJECTSTORE_SWIFT_USER_NAME`: Swift username +- `OBJECTSTORE_SWIFT_USER_PASSWORD`: Swift user password +- `OBJECTSTORE_SWIFT_USER_DOMAIN` (default: `Default`): Swift user domain +- `OBJECTSTORE_SWIFT_PROJECT_NAME`: OpenStack project name +- `OBJECTSTORE_SWIFT_PROJECT_DOMAIN` (default: `Default`): OpenStack project domain +- `OBJECTSTORE_SWIFT_SERVICE_NAME` (default: `swift`): Swift service name +- `OBJECTSTORE_SWIFT_SERVICE_REGION`: Swift endpoint region +- `OBJECTSTORE_SWIFT_CONTAINER_NAME`: Swift container (bucket) that Nextcloud should store the data in + +Check the [Nextcloud documentation](https://docs.nextcloud.com/server/latest/admin_manual/configuration_files/primary_storage.html#openstack-swift) for more information. + + +## Using the apache image behind a reverse proxy and auto configure server host and protocol + +The apache image will replace the remote addr (ip address visible to Nextcloud) with the ip address from `X-Real-IP` if the request is coming from a proxy in 10.0.0.0/8, 172.16.0.0/12 or 192.168.0.0/16 by default. If you want Nextcloud to pick up the server host (`HTTP_X_FORWARDED_HOST`), protocol (`HTTP_X_FORWARDED_PROTO`) and client ip (`HTTP_X_FORWARDED_FOR`) from a trusted proxy disable rewrite ip and the reverse proxies ip address to `TRUSTED_PROXIES`. + +- `APACHE_DISABLE_REWRITE_IP` (not set by default): Set to 1 to disable rewrite ip. + +- `TRUSTED_PROXIES` (empty by default): A space-separated list of trusted proxies. CIDR notation is supported for IPv4. + +If the `TRUSTED_PROXIES` approach does not work for you, try using fixed values for overwrite parameters. + +- `OVERWRITEHOST` (empty by default): Set the hostname of the proxy. Can also specify a port. +- `OVERWRITEPROTOCOL` (empty by default): Set the protocol of the proxy, http or https. +- `OVERWRITEWEBROOT` (empty by default): Set the absolute path of the proxy. +- `OVERWRITECONDADDR` (empty by default): Regex to overwrite the values dependent on the remote address. + +Check the [Nexcloud documentation](https://docs.nextcloud.com/server/latest/admin_manual/configuration_server/reverse_proxy_configuration.html) for more details. + +Keep in mind that once set, removing these environment variables won't remove these values from the configuration file, due to how Nextcloud merges configuration files together. + +# Running this image with docker-compose +The easiest way to get a fully featured and functional setup is using a `docker-compose` file. There are too many different possibilities to setup your system, so here are only some examples of what you have to look for. + +At first, make sure you have chosen the right base image (fpm or apache) and added features you wanted (see below). In every case, you would want to add a database container and docker volumes to get easy access to your persistent data. When you want to have your server reachable from the internet, adding HTTPS-encryption is mandatory! See below for more information. + +## Base version - apache +This version will use the apache image and add a mariaDB container. The volumes are set to keep your data persistent. This setup provides **no ssl encryption** and is intended to run behind a proxy. + +Make sure to pass in values for `MYSQL_ROOT_PASSWORD` and `MYSQL_PASSWORD` variables before you run this setup. + +```yaml +version: '2' + +volumes: + nextcloud: + db: + +services: + db: + image: mariadb + command: --transaction-isolation=READ-COMMITTED --binlog-format=ROW + restart: always + volumes: + - db:/var/lib/mysql + environment: + - MYSQL_ROOT_PASSWORD= + - MYSQL_PASSWORD= + - MYSQL_DATABASE=nextcloud + - MYSQL_USER=nextcloud + + app: + image: nextcloud + ports: + - 8080:80 + links: + - db + volumes: + - nextcloud:/var/www/html + restart: always + +``` + +Then run `docker-compose up -d`, now you can access Nextcloud at http://localhost:8080/ from your host system. + +## Base version - FPM +When using the FPM image, you need another container that acts as web server on port 80 and proxies the requests to the Nextcloud container. In this example a simple nginx container is combined with the Nextcloud-fpm image and a MariaDB database container. The data is stored in docker volumes. The nginx container also needs access to static files from your Nextcloud installation. It gets access to all the volumes mounted to Nextcloud via the `volumes_from` option.The configuration for nginx is stored in the configuration file `nginx.conf`, that is mounted into the container. An example can be found in the examples section [here](https://github.com/nextcloud/docker/tree/master/.examples). + +As this setup does **not include encryption**, it should be run behind a proxy. + +Make sure to pass in values for `MYSQL_ROOT_PASSWORD` and `MYSQL_PASSWORD` variables before you run this setup. + +```yaml +version: '2' + +volumes: + nextcloud: + db: + +services: + db: + image: mariadb + command: --transaction-isolation=READ-COMMITTED --binlog-format=ROW + restart: always + volumes: + - db:/var/lib/mysql + environment: + - MYSQL_ROOT_PASSWORD= + - MYSQL_PASSWORD= + - MYSQL_DATABASE=nextcloud + - MYSQL_USER=nextcloud + + app: + image: nextcloud:fpm + links: + - db + volumes: + - nextcloud:/var/www/html + restart: always + + web: + image: nginx + ports: + - 8080:80 + links: + - app + volumes: + - ./nginx.conf:/etc/nginx/nginx.conf:ro + volumes_from: + - app + restart: always +``` + +Then run `docker-compose up -d`, now you can access Nextcloud at http://localhost:8080/ from your host system. + +# Docker Secrets +As an alternative to passing sensitive information via environment variables, _FILE may be appended to the previously listed environment variables, causing the initialization script to load the values for those variables from files present in the container. In particular, this can be used to load passwords from Docker secrets stored in /run/secrets/ files. For example: +```yaml +version: '3.2' + +services: + db: + image: postgres + restart: always + volumes: + - db:/var/lib/postgresql/data + environment: + - POSTGRES_DB_FILE=/run/secrets/postgres_db + - POSTGRES_USER_FILE=/run/secrets/postgres_user + - POSTGRES_PASSWORD_FILE=/run/secrets/postgres_password + secrets: + - postgres_db + - postgres_password + - postgres_user + + app: + image: nextcloud + restart: always + ports: + - 8080:80 + volumes: + - nextcloud:/var/www/html + environment: + - POSTGRES_HOST=db + - POSTGRES_DB_FILE=/run/secrets/postgres_db + - POSTGRES_USER_FILE=/run/secrets/postgres_user + - POSTGRES_PASSWORD_FILE=/run/secrets/postgres_password + - NEXTCLOUD_ADMIN_PASSWORD_FILE=/run/secrets/nextcloud_admin_password + - NEXTCLOUD_ADMIN_USER_FILE=/run/secrets/nextcloud_admin_user + depends_on: + - db + secrets: + - nextcloud_admin_password + - nextcloud_admin_user + - postgres_db + - postgres_password + - postgres_user + +volumes: + db: + nextcloud: + +secrets: + nextcloud_admin_password: + file: ./nextcloud_admin_password.txt # put admin password to this file + nextcloud_admin_user: + file: ./nextcloud_admin_user.txt # put admin username to this file + postgres_db: + file: ./postgres_db.txt # put postgresql db name to this file + postgres_password: + file: ./postgres_password.txt # put postgresql password to this file + postgres_user: + file: ./postgres_user.txt # put postgresql username to this file +``` + +Currently, this is only supported for `NEXTCLOUD_ADMIN_PASSWORD`, `NEXTCLOUD_ADMIN_USER`, `MYSQL_DB`, `MYSQL_PASSWORD`, `MYSQL_USER`, `POSTGRES_DB`, `POSTGRES_PASSWORD`, `POSTGRES_USER`. + +# Make your Nextcloud available from the internet +Until here, your Nextcloud is just available from you docker host. If you want your Nextcloud available from the internet adding SSL encryption is mandatory. + +## HTTPS - SSL encryption +There are many different possibilities to introduce encryption depending on your setup. + +We recommend using a reverse proxy in front of our Nextcloud installation. Your Nextcloud will only be reachable through the proxy, which encrypts all traffic to the clients. You can mount your manually generated certificates to the proxy or use a fully automated solution which generates and renews the certificates for you. + +In our [examples](https://github.com/nextcloud/docker/tree/master/.examples) section we have an example for a fully automated setup using a reverse proxy, a container for [Let's Encrypt](https://letsencrypt.org/) certificate handling, database and Nextcloud. It uses the popular [nginx-proxy](https://github.com/jwilder/nginx-proxy) and [docker-letsencrypt-nginx-proxy-companion](https://github.com/JrCs/docker-letsencrypt-nginx-proxy-companion) containers. Please check the according documentations before using this setup. + +# First use +When you first access your Nextcloud, the setup wizard will appear and ask you to choose an administrator account username, password and the database connection. For the database use `db` as host and `nextcloud` as table and user name. Also enter the password you chose in your `docker-compose.yml` file. + +# Update to a newer version +Updating the Nextcloud container is done by pulling the new image, throwing away the old container and starting the new one. + +**It is only possible to upgrade one major version at a time. For example, if you want to upgrade from version 14 to 16, you will have to upgrade from version 14 to 15, then from 15 to 16.** + +Since all data is stored in volumes, nothing gets lost. The startup script will check for the version in your volume and the installed docker version. If it finds a mismatch, it automatically starts the upgrade process. Don't forget to add all the volumes to your new container, so it works as expected. + +```console +$ docker pull nextcloud +$ docker stop +$ docker rm +$ docker run -d nextcloud +``` +Beware that you have to run the same command with the options that you used to initially start your Nextcloud. That includes volumes, port mapping. + +When using docker-compose your compose file takes care of your configuration, so you just have to run: + +```console +$ docker-compose pull +$ docker-compose up -d +``` + + +# Adding Features +A lot of people want to use additional functionality inside their Nextcloud installation. If the image does not include the packages you need, you can easily build your own image on top of it. +Start your derived image with the `FROM` statement and add whatever you like. + +```yaml +FROM nextcloud:apache + +RUN ... + +``` +The [examples folder](https://github.com/nextcloud/docker/blob/master/.examples) gives a few examples on how to add certain functionalities, like including the cron job, smb-support or imap-authentication. + +If you use your own Dockerfile, you need to configure your docker-compose file accordingly. Switch out the `image` option with `build`. You have to specify the path to your Dockerfile. (in the example it's in the same directory next to the docker-compose file) + +```yaml + app: + build: . + links: + - db + volumes: + - data:/var/www/html/data + - config:/var/www/html/config + - apps:/var/www/html/apps + restart: always +``` + +If you intend to use another command to run the image, make sure that you set `NEXTCLOUD_UPDATE=1` in your Dockerfile. Otherwise the installation and update will not work. + +```yaml +FROM nextcloud:apache + +... + +ENV NEXTCLOUD_UPDATE=1 + +CMD ["/usr/bin/supervisord"] +``` + + +**Updating** your own derived image is also very simple. When a new version of the Nextcloud image is available run: + +```console +docker build -t your-name --pull . +docker run -d your-name +``` + +or for docker-compose: +```console +docker-compose build --pull +docker-compose up -d +``` + +The `--pull` option tells docker to look for new versions of the base image. Then the build instructions inside your `Dockerfile` are run on top of the new image. + +# Migrating an existing installation +You're already using Nextcloud and want to switch to docker? Great! Here are some things to look out for: + +1. Define your whole Nextcloud infrastructure in a `docker-compose` file and run it with `docker-compose up -d` to get the base installation, volumes and database. Work from there. +2. Restore your database from a mysqldump (nextcloud\_db\_1 is the name of your db container) + - To import from a MySQL dump use the following commands + ```console + docker cp ./database.dmp nextcloud_db_1:/dmp + docker-compose exec db sh -c "mysql -u USER -pPASSWORD nextcloud < /dmp" + docker-compose exec db rm /dmp + ``` + - To import from a PostgreSQL dump use to following commands + ```console + docker cp ./database.dmp nextcloud_db_1:/dmp + docker-compose exec db sh -c "psql -U USER --set ON_ERROR_STOP=on nextcloud < /dmp" + docker-compose exec db rm /dmp + ``` +3. Edit your config.php + 1. Set database connection + - In case of MySQL database + ```php + 'dbhost' => 'db:3306', + ``` + - In case of PostgreSQL database + ```php + 'dbhost' => 'db:5432', + ``` + 2. Make sure you have no configuration for the `apps_paths`. Delete lines like these + ```diff + - "apps_paths" => array ( + - 0 => array ( + - "path" => OC::$SERVERROOT."/apps", + - "url" => "/apps", + - "writable" => true, + - ), + ``` + 3. Make sure to have the `apps` directory non writable and the `custom_apps` directory writable + ```php + 'apps_paths' => array ( + 0 => array ( + 'path' => '/var/www/html/apps', + 'url' => '/apps', + 'writable' => false, + ), + 1 => array ( + 'path' => '/var/www/html/custom_apps', + 'url' => '/custom_apps', + 'writable' => true, + ), + ), + ``` + 4. Make sure your data directory is set to /var/www/html/data + ```php + 'datadirectory' => '/var/www/html/data', + ``` + + +4. Copy your data (nextcloud_app_1 is the name of your Nextcloud container): +```console +docker cp ./data/ nextcloud_app_1:/var/www/html/ +docker-compose exec app chown -R www-data:www-data /var/www/html/data +docker cp ./theming/ nextcloud_app_1:/var/www/html/ +docker-compose exec app chown -R www-data:www-data /var/www/html/theming +docker cp ./config/config.php nextcloud_app_1:/var/www/html/config +docker-compose exec app chown -R www-data:www-data /var/www/html/config +``` +5. Copy only the custom apps you use (or simply redownload them from the web interface): +```console +docker cp ./custom_apps/ nextcloud_data:/var/www/html/ +docker-compose exec app chown -R www-data:www-data /var/www/html/custom_apps +``` + +# Questions / Issues +If you got any questions or problems using the image, please visit our [Github Repository](https://github.com/nextcloud/docker) and write an issue. diff --git a/linux/advanced/nextcloud/patched/29/Streamer.php b/linux/advanced/nextcloud/patched/29/Streamer.php new file mode 100644 index 000000000..02a7719e4 --- /dev/null +++ b/linux/advanced/nextcloud/patched/29/Streamer.php @@ -0,0 +1,190 @@ + + * @author Daniel Calviño Sánchez + * @author Joas Schilling + * @author Roeland Jago Douma + * @author Thomas Müller + * @author Victor Dubiniuk + * + * @license AGPL-3.0 + * + * This code is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License, version 3, + * as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License, version 3, + * along with this program. If not, see + * + */ + +namespace OC; + +use OC\Files\Filesystem; +use OCP\Files\File; +use OCP\Files\Folder; +use OCP\Files\InvalidPathException; +use OCP\Files\NotFoundException; +use OCP\Files\NotPermittedException; +use OCP\IRequest; +use ownCloud\TarStreamer\TarStreamer; +use ZipStreamer\ZipStreamer; + +class Streamer { + // array of regexp. Matching user agents will get tar instead of zip + private $preferTarFor = [ '/macintosh|mac os x/i' ]; + + // streamer instance + private $streamerInstance; + + /** + * Streamer constructor. + * + * @param IRequest $request + * @param int $size The size of the files in bytes + * @param int $numberOfFiles The number of files (and directories) that will + * be included in the streamed file + */ + public function __construct(IRequest $request, $size, int $numberOfFiles){ + + /** + * zip32 constraints for a basic (without compression, volumes nor + * encryption) zip file according to the Zip specification: + * - No file size is larger than 4 bytes (file size < 4294967296); see + * 4.4.9 uncompressed size + * - The size of all files plus their local headers is not larger than + * 4 bytes; see 4.4.16 relative offset of local header and 4.4.24 + * offset of start of central directory with respect to the starting + * disk number + * - The total number of entries (files and directories) in the zip file + * is not larger than 2 bytes (number of entries < 65536); see 4.4.22 + * total number of entries in the central dir + * - The size of the central directory is not larger than 4 bytes; see + * 4.4.23 size of the central directory + * + * Due to all that, zip32 is used if the size is below 4GB and there are + * less than 65536 files; the margin between 4*1000^3 and 4*1024^3 + * should give enough room for the extra zip metadata. Technically, it + * would still be possible to create an invalid zip32 file (for example, + * a zip file from files smaller than 4GB with a central directory + * larger than 4GiB), but it should not happen in the real world. + */ + if ($size < 4 * 1000 * 1000 * 1000 && $numberOfFiles < 65536) { + $this->streamerInstance = new ZipStreamer(['zip64' => true]); + } else if ($request->isUserAgent($this->preferTarFor)) { + $this->streamerInstance = new TarStreamer(); + } else { + $this->streamerInstance = new ZipStreamer(['zip64' => PHP_INT_SIZE !== 4]); + } + } + + /** + * Send HTTP headers + * @param string $name + */ + public function sendHeaders($name){ + $extension = $this->streamerInstance instanceof ZipStreamer ? '.zip' : '.tar'; + $fullName = $name . $extension; + $this->streamerInstance->sendHeaders($fullName); + } + + /** + * Stream directory recursively + * + * @throws NotFoundException + * @throws NotPermittedException + * @throws InvalidPathException + */ + public function addDirRecursive(string $dir, string $internalDir = ''): void { + $dirname = basename($dir); + $rootDir = $internalDir . $dirname; + if (!empty($rootDir)) { + $this->streamerInstance->addEmptyDir($rootDir); + } + $internalDir .= $dirname . '/'; + // prevent absolute dirs + $internalDir = ltrim($internalDir, '/'); + + $userFolder = \OC::$server->getRootFolder()->get(Filesystem::getRoot()); + /** @var Folder $dirNode */ + $dirNode = $userFolder->get($dir); + $files = $dirNode->getDirectoryListing(); + + foreach($files as $file) { + if($file instanceof File) { + try { + $fh = $file->fopen('r'); + } catch (NotPermittedException $e) { + continue; + } + $this->addFileFromStream( + $fh, + $internalDir . $file->getName(), + $file->getSize(), + $file->getMTime() + ); + fclose($fh); + } elseif ($file instanceof Folder) { + if($file->isReadable()) { + $this->addDirRecursive($dir . '/' . $file->getName(), $internalDir); + } + } + } + } + + /** + * Add a file to the archive at the specified location and file name. + * + * @param string $stream Stream to read data from + * @param string $internalName Filepath and name to be used in the archive. + * @param int $size Filesize + * @param int|bool $time File mtime as int, or false + * @return bool $success + */ + public function addFileFromStream($stream, $internalName, $size, $time) { + $options = []; + if ($time) { + $options = [ + 'timestamp' => $time + ]; + } + + if ($this->streamerInstance instanceof ZipStreamer) { + return $this->streamerInstance->addFileFromStream($stream, $internalName, $options); + } else { + return $this->streamerInstance->addFileFromStream($stream, $internalName, $size, $options); + } + } + + /** + * Add an empty directory entry to the archive. + * + * @param string $dirName Directory Path and name to be added to the archive. + * @return bool $success + */ + public function addEmptyDir($dirName){ + return $this->streamerInstance->addEmptyDir($dirName); + } + + /** + * Close the archive. + * A closed archive can no longer have new files added to it. After + * closing, the file is completely written to the output stream. + * @return bool $success + */ + public function finalize(){ + return $this->streamerInstance->finalize(); + } +} diff --git a/linux/advanced/nextcloud/patched/29/docker-compose.yml b/linux/advanced/nextcloud/patched/29/docker-compose.yml new file mode 100644 index 000000000..47b668dac --- /dev/null +++ b/linux/advanced/nextcloud/patched/29/docker-compose.yml @@ -0,0 +1,6 @@ +version: '3' +services: + app: + image: "epicmorg/nextcloud:29-patched" + build: + context: . diff --git a/linux/advanced/nextcloud/pure/29/Dockerfile b/linux/advanced/nextcloud/pure/29/Dockerfile new file mode 100644 index 000000000..cd373e2c9 --- /dev/null +++ b/linux/advanced/nextcloud/pure/29/Dockerfile @@ -0,0 +1,82 @@ +FROM nextcloud:29 +ENV DEBIAN_FRONTEND noninteractive +LABEL maintainer="EpicMorg DevTeam, developer@epicm.org" +LABEL org.opencontainers.image.vendor="EpicMorg DevTeam, developer@epicm.org" +LABEL org.opencontainers.image.authors="STAM, kasthack, Aleks-Z" +LABEL org.opencontainers.image.source="https://github.com/EpicMorg/docker" +LABEL org.opencontainers.image.url="https://github.com/EpicMorg/docker" +LABEL donate.crypto.TON="EQDvHXRK-K1ZieJhgTD9JZQk7xCnWzRbctYnUkWq1lZq1bUg" +LABEL donate.crypto.ETH="0x26a8443a694f08cdfec966aa6fd72c45068753ec" +LABEL donate.crypto.BTC="bc1querz8ug9asjmsuy6yn4a94a2athgprnu7e5zq2" +LABEL donate.crypto.LTC="ltc1qtwwacq8f0n76fer2y83wxu540hddnmf8cdrlvg" +LABEL donate.crypto.NVC="4SbMynYETyhmKdggu8f38ULU6yQKiJPuo6" +LABEL donate.crypto.DOGE="DHyfE1CZzWtyaQiaMmv6g4KvXVQRUgrYE6" +LABEL donate.crypto.PPC="pQWArPzYoLppNe7ew3QPfto1k1eq66BYUB" +LABEL donate.crypto.RVN="R9t2LKeLhDSZBKNgUzSDZAossA3UqNvbV3" +LABEL donate.crypto.ZEC="t1KRMMmwMSZth8vJcd2ZHtPEFKTQ74yVixE" +LABEL donate.crypto.XMR="884PqZ1gDjWW7fKxtbaeRoBeSh9EGZbkqUyLriWmuKbwLZrAJdYUs4wQxoVfEJoW7LBhdQMP9cFhZQpJr6xvg7esHLdCbb1" +################################################################## +# adding normal sources list +################################################################## +RUN rm -rfv /etc/apt/sources.list +COPY sources.list /etc/apt/sources.list + +################################################################## +# adding some utils +################################################################## +RUN apt update -y && \ + apt dist-upgrade -y && \ + apt install -y --allow-unauthenticated \ + apt-transport-https \ + curl \ + ca-certificates \ + ghostscript \ + nload \ + htop \ + mc \ + nano \ + sudo \ + imagemagick \ + imagemagick-common \ + sqlite3 \ + smbclient \ + libsmbclient \ + wget \ + net-tools \ + iputils-ping + + +################################################################## +# installing php repo + smbclient +################################################################## +RUN wget -O /etc/apt/trusted.gpg.d/php.gpg https://packages.sury.org/php/apt.gpg +RUN sh -c 'echo "deb https://packages.sury.org/php/ buster main" > /etc/apt/sources.list.d/php.list' +RUN apt update -y && \ + apt install -y --allow-unauthenticated \ + libsmbclient-dev \ + libmagickwand-dev \ + libmagickcore-dev \ + libc-client-dev \ + libkrb5-dev \ + libsqlite3-dev \ + libssl-dev + +RUN pecl install inotify && \ + docker-php-ext-enable inotify + +RUN pecl install smbclient && \ + docker-php-ext-enable smbclient + +RUN docker-php-ext-configure imap --with-kerberos --with-imap-ssl && \ + docker-php-ext-install imap && \ + docker-php-ext-enable imap + +RUN docker-php-ext-install fileinfo bz2 intl ftp pdo_sqlite && \ + docker-php-ext-enable fileinfo bz2 intl ftp pdo_sqlite + +################################################################## +# smb fix +################################################################## +RUN rm -frv /etc/samba/smb.conf /usr/share/samba/smb.conf +ADD smb.conf /etc/samba/ +ADD smb.conf /usr/share/samba/ diff --git a/linux/ecosystem/nodejs/outdated/node11/Makefile b/linux/advanced/nextcloud/pure/29/Makefile similarity index 100% rename from linux/ecosystem/nodejs/outdated/node11/Makefile rename to linux/advanced/nextcloud/pure/29/Makefile diff --git a/linux/advanced/nextcloud/pure/29/README.md b/linux/advanced/nextcloud/pure/29/README.md new file mode 100644 index 000000000..b6df71808 --- /dev/null +++ b/linux/advanced/nextcloud/pure/29/README.md @@ -0,0 +1,527 @@ +# What is Nextcloud? + +[![GitHub CI build status badge](https://github.com/nextcloud/docker/workflows/Images/badge.svg)](https://github.com/nextcloud/docker/actions?query=workflow%3AImages) +[![update.sh build status badge](https://github.com/nextcloud/docker/workflows/update.sh/badge.svg)](https://github.com/nextcloud/docker/actions?query=workflow%3Aupdate.sh) +[![amd64 build status badge](https://img.shields.io/jenkins/s/https/doi-janky.infosiftr.net/job/multiarch/job/amd64/job/nextcloud.svg?label=amd64)](https://doi-janky.infosiftr.net/job/multiarch/job/amd64/job/nextcloud) +[![arm32v5 build status badge](https://img.shields.io/jenkins/s/https/doi-janky.infosiftr.net/job/multiarch/job/arm32v5/job/nextcloud.svg?label=arm32v5)](https://doi-janky.infosiftr.net/job/multiarch/job/arm32v5/job/nextcloud) +[![arm32v6 build status badge](https://img.shields.io/jenkins/s/https/doi-janky.infosiftr.net/job/multiarch/job/arm32v6/job/nextcloud.svg?label=arm32v6)](https://doi-janky.infosiftr.net/job/multiarch/job/arm32v6/job/nextcloud) +[![arm32v7 build status badge](https://img.shields.io/jenkins/s/https/doi-janky.infosiftr.net/job/multiarch/job/arm32v7/job/nextcloud.svg?label=arm32v7)](https://doi-janky.infosiftr.net/job/multiarch/job/arm32v7/job/nextcloud) +[![arm64v8 build status badge](https://img.shields.io/jenkins/s/https/doi-janky.infosiftr.net/job/multiarch/job/arm64v8/job/nextcloud.svg?label=arm64v8)](https://doi-janky.infosiftr.net/job/multiarch/job/arm64v8/job/nextcloud) +[![i386 build status badge](https://img.shields.io/jenkins/s/https/doi-janky.infosiftr.net/job/multiarch/job/i386/job/nextcloud.svg?label=i386)](https://doi-janky.infosiftr.net/job/multiarch/job/i386/job/nextcloud) +[![mips64le build status badge](https://img.shields.io/jenkins/s/https/doi-janky.infosiftr.net/job/multiarch/job/mips64le/job/nextcloud.svg?label=mips64le)](https://doi-janky.infosiftr.net/job/multiarch/job/mips64le/job/nextcloud) +[![ppc64le build status badge](https://img.shields.io/jenkins/s/https/doi-janky.infosiftr.net/job/multiarch/job/ppc64le/job/nextcloud.svg?label=ppc64le)](https://doi-janky.infosiftr.net/job/multiarch/job/ppc64le/job/nextcloud) +[![s390x build status badge](https://img.shields.io/jenkins/s/https/doi-janky.infosiftr.net/job/multiarch/job/s390x/job/nextcloud.svg?label=s390x)](https://doi-janky.infosiftr.net/job/multiarch/job/s390x/job/nextcloud) + +A safe home for all your data. Access & share your files, calendars, contacts, mail & more from any device, on your terms. + +![logo](https://cdn.rawgit.com/nextcloud/docker/80dd587d847b184ba95d7187a2a7a56ae4cbbb7b/logo.svg) + +# How to use this image +This image is designed to be used in a micro-service environment. There are two versions of the image you can choose from. + +The `apache` tag contains a full Nextcloud installation including an apache web server. It is designed to be easy to use and gets you running pretty fast. This is also the default for the `latest` tag and version tags that are not further specified. + +The second option is a `fpm` container. It is based on the [php-fpm](https://hub.docker.com/_/php/) image and runs a fastCGI-Process that serves your Nextcloud page. To use this image it must be combined with any webserver that can proxy the http requests to the FastCGI-port of the container. + +[![Try in PWD](https://github.com/play-with-docker/stacks/raw/cff22438cb4195ace27f9b15784bbb497047afa7/assets/images/button.png)](http://play-with-docker.com?stack=https://raw.githubusercontent.com/nextcloud/docker/8db861d67f257a3e9ac1790ea06d4e2a7a193a6c/stack.yml) + +## Using the apache image +The apache image contains a webserver and exposes port 80. To start the container type: + +```console +$ docker run -d -p 8080:80 nextcloud +``` + +Now you can access Nextcloud at http://localhost:8080/ from your host system. + + +## Using the fpm image +To use the fpm image, you need an additional web server that can proxy http-request to the fpm-port of the container. For fpm connection this container exposes port 9000. In most cases, you might want use another container or your host as proxy. +If you use your host you can address your Nextcloud container directly on port 9000. If you use another container, make sure that you add them to the same docker network (via `docker run --network ...` or a `docker-compose` file). +In both cases you don't want to map the fpm port to your host. + +```console +$ docker run -d nextcloud:fpm +``` + +As the fastCGI-Process is not capable of serving static files (style sheets, images, ...), the webserver needs access to these files. This can be achieved with the `volumes-from` option. You can find more information in the [docker-compose section](#running-this-image-with-docker-compose). + +## Using an external database +By default, this container uses SQLite for data storage but the Nextcloud setup wizard (appears on first run) allows connecting to an existing MySQL/MariaDB or PostgreSQL database. You can also link a database container, e. g. `--link my-mysql:mysql`, and then use `mysql` as the database host on setup. More info is in the docker-compose section. + +## Persistent data +The Nextcloud installation and all data beyond what lives in the database (file uploads, etc) are stored in the [unnamed docker volume](https://docs.docker.com/engine/tutorials/dockervolumes/#adding-a-data-volume) volume `/var/www/html`. The docker daemon will store that data within the docker directory `/var/lib/docker/volumes/...`. That means your data is saved even if the container crashes, is stopped or deleted. + +A named Docker volume or a mounted host directory should be used for upgrades and backups. To achieve this, you need one volume for your database container and one for Nextcloud. + +Nextcloud: +- `/var/www/html/` folder where all nextcloud data lives +```console +$ docker run -d \ +-v nextcloud:/var/www/html \ +nextcloud +``` + +Database: +- `/var/lib/mysql` MySQL / MariaDB Data +- `/var/lib/postgresql/data` PostgreSQL Data +```console +$ docker run -d \ +-v db:/var/lib/mysql \ +mariadb +``` + +If you want to get fine grained access to your individual files, you can mount additional volumes for data, config, your theme and custom apps. +The `data`, `config` files are stored in respective subfolders inside `/var/www/html/`. The apps are split into core `apps` (which are shipped with Nextcloud and you don't need to take care of) and a `custom_apps` folder. If you use a custom theme it would go into the `themes` subfolder. + +Overview of the folders that can be mounted as volumes: + +- `/var/www/html` Main folder, needed for updating +- `/var/www/html/custom_apps` installed / modified apps +- `/var/www/html/config` local configuration +- `/var/www/html/data` the actual data of your Nextcloud +- `/var/www/html/themes/` theming/branding + +If you want to use named volumes for all of these, it would look like this: +```console +$ docker run -d \ +-v nextcloud:/var/www/html \ +-v apps:/var/www/html/custom_apps \ +-v config:/var/www/html/config \ +-v data:/var/www/html/data \ +-v theme:/var/www/html/themes/ \ +nextcloud +``` + +## Using the Nextcloud command-line interface +To use the [Nextcloud command-line interface](https://docs.nextcloud.com/server/latest/admin_manual/configuration_server/occ_command.html) (aka. `occ` command): +```console +$ docker exec --user www-data CONTAINER_ID php occ +``` +or for docker-compose: +```console +$ docker-compose exec --user www-data app php occ +``` + +## Auto configuration via environment variables +The nextcloud image supports auto configuration via environment variables. You can preconfigure everything that is asked on the install page on first run. To enable auto configuration, set your database connection via the following environment variables. ONLY use one database type! + +__SQLite__: +- `SQLITE_DATABASE` Name of the database using sqlite + +__MYSQL/MariaDB__: +- `MYSQL_DATABASE` Name of the database using mysql / mariadb. +- `MYSQL_USER` Username for the database using mysql / mariadb. +- `MYSQL_PASSWORD` Password for the database user using mysql / mariadb. +- `MYSQL_HOST` Hostname of the database server using mysql / mariadb. + +__PostgreSQL__: +- `POSTGRES_DB` Name of the database using postgres. +- `POSTGRES_USER` Username for the database using postgres. +- `POSTGRES_PASSWORD` Password for the database user using postgres. +- `POSTGRES_HOST` Hostname of the database server using postgres. + +If you set any values, they will not be asked in the install page on first run. With a complete configuration by using all variables for your database type, you can additionally configure your Nextcloud instance by setting admin user and password (only works if you set both): + +- `NEXTCLOUD_ADMIN_USER` Name of the Nextcloud admin user. +- `NEXTCLOUD_ADMIN_PASSWORD` Password for the Nextcloud admin user. + +If you want, you can set the data directory, otherwise default value will be used. + +- `NEXTCLOUD_DATA_DIR` (default: _/var/www/html/data_) Configures the data directory where nextcloud stores all files from the users. + +One or more trusted domains can be set through environment variable, too. They will be added to the configuration after install. + +- `NEXTCLOUD_TRUSTED_DOMAINS` (not set by default) Optional space-separated list of domains + +The install and update script is only triggered when a default command is used (`apache-foreground` or `php-fpm`). If you use a custom command you have to enable the install / update with + +- `NEXTCLOUD_UPDATE` (default: _0_) + +If you want to use Redis you have to create a separate [Redis](https://hub.docker.com/_/redis/) container in your setup / in your docker-compose file. To inform Nextcloud about the Redis container, pass in the following parameters: + +- `REDIS_HOST` (not set by default) Name of Redis container +- `REDIS_HOST_PORT` (default: _6379_) Optional port for Redis, only use for external Redis servers that run on non-standard ports. +- `REDIS_HOST_PASSWORD` (not set by default) Redis password + +The use of Redis is recommended to prevent file locking problems. See the examples for further instructions. + +To use an external SMTP server, you have to provide the connection details. To configure Nextcloud to use SMTP add: + +- `SMTP_HOST` (not set by default): The hostname of the SMTP server. +- `SMTP_SECURE` (empty by default): Set to `ssl` to use SSL, or `tls` to use STARTTLS. +- `SMTP_PORT` (default: `465` for SSL and `25` for non-secure connections): Optional port for the SMTP connection. Use `587` for an alternative port for STARTTLS. +- `SMTP_AUTHTYPE` (default: `LOGIN`): The method used for authentication. Use `PLAIN` if no authentication is required. +- `SMTP_NAME` (empty by default): The username for the authentication. +- `SMTP_PASSWORD` (empty by default): The password for the authentication. +- `MAIL_FROM_ADDRESS` (not set by default): Use this address for the 'from' field in the emails sent by Nextcloud. +- `MAIL_DOMAIN` (not set by default): Set a different domain for the emails than the domain where Nextcloud is installed. + +Check the [Nextcloud documentation](https://docs.nextcloud.com/server/latest/admin_manual/configuration_server/email_configuration.html) for other values to configure SMTP. + +To use an external S3 compatible object store as primary storage, set the following variables: +- `OBJECTSTORE_S3_HOST`: The hostname of the object storage server +- `OBJECTSTORE_S3_BUCKET`: The name of the bucket that Nextcloud should store the data in +- `OBJECTSTORE_S3_KEY`: AWS style access key +- `OBJECTSTORE_S3_SECRET`: AWS style secret access key +- `OBJECTSTORE_S3_PORT`: The port that the object storage server is being served over +- `OBJECTSTORE_S3_SSL` (default: `true`): Whether or not SSL/TLS should be used to communicate with object storage server +- `OBJECTSTORE_S3_REGION`: The region that the S3 bucket resides in. +- `OBJECTSTORE_S3_USEPATH_STYLE` (default: `false`): Not required for AWS S3 + +Check the [Nextcloud documentation](https://docs.nextcloud.com/server/latest/admin_manual/configuration_files/primary_storage.html#simple-storage-service-s3) for more information. + +To use an external OpenStack Swift object store as primary storage, set the following variables: +- `OBJECTSTORE_SWIFT_URL`: The Swift identity (Keystone) endpoint +- `OBJECTSTORE_SWIFT_AUTOCREATE` (default: `false`): Whether or not Nextcloud should automatically create the Swift container +- `OBJECTSTORE_SWIFT_USER_NAME`: Swift username +- `OBJECTSTORE_SWIFT_USER_PASSWORD`: Swift user password +- `OBJECTSTORE_SWIFT_USER_DOMAIN` (default: `Default`): Swift user domain +- `OBJECTSTORE_SWIFT_PROJECT_NAME`: OpenStack project name +- `OBJECTSTORE_SWIFT_PROJECT_DOMAIN` (default: `Default`): OpenStack project domain +- `OBJECTSTORE_SWIFT_SERVICE_NAME` (default: `swift`): Swift service name +- `OBJECTSTORE_SWIFT_SERVICE_REGION`: Swift endpoint region +- `OBJECTSTORE_SWIFT_CONTAINER_NAME`: Swift container (bucket) that Nextcloud should store the data in + +Check the [Nextcloud documentation](https://docs.nextcloud.com/server/latest/admin_manual/configuration_files/primary_storage.html#openstack-swift) for more information. + + +## Using the apache image behind a reverse proxy and auto configure server host and protocol + +The apache image will replace the remote addr (ip address visible to Nextcloud) with the ip address from `X-Real-IP` if the request is coming from a proxy in 10.0.0.0/8, 172.16.0.0/12 or 192.168.0.0/16 by default. If you want Nextcloud to pick up the server host (`HTTP_X_FORWARDED_HOST`), protocol (`HTTP_X_FORWARDED_PROTO`) and client ip (`HTTP_X_FORWARDED_FOR`) from a trusted proxy disable rewrite ip and the reverse proxies ip address to `TRUSTED_PROXIES`. + +- `APACHE_DISABLE_REWRITE_IP` (not set by default): Set to 1 to disable rewrite ip. + +- `TRUSTED_PROXIES` (empty by default): A space-separated list of trusted proxies. CIDR notation is supported for IPv4. + +If the `TRUSTED_PROXIES` approach does not work for you, try using fixed values for overwrite parameters. + +- `OVERWRITEHOST` (empty by default): Set the hostname of the proxy. Can also specify a port. +- `OVERWRITEPROTOCOL` (empty by default): Set the protocol of the proxy, http or https. +- `OVERWRITEWEBROOT` (empty by default): Set the absolute path of the proxy. +- `OVERWRITECONDADDR` (empty by default): Regex to overwrite the values dependent on the remote address. + +Check the [Nexcloud documentation](https://docs.nextcloud.com/server/latest/admin_manual/configuration_server/reverse_proxy_configuration.html) for more details. + +Keep in mind that once set, removing these environment variables won't remove these values from the configuration file, due to how Nextcloud merges configuration files together. + +# Running this image with docker-compose +The easiest way to get a fully featured and functional setup is using a `docker-compose` file. There are too many different possibilities to setup your system, so here are only some examples of what you have to look for. + +At first, make sure you have chosen the right base image (fpm or apache) and added features you wanted (see below). In every case, you would want to add a database container and docker volumes to get easy access to your persistent data. When you want to have your server reachable from the internet, adding HTTPS-encryption is mandatory! See below for more information. + +## Base version - apache +This version will use the apache image and add a mariaDB container. The volumes are set to keep your data persistent. This setup provides **no ssl encryption** and is intended to run behind a proxy. + +Make sure to pass in values for `MYSQL_ROOT_PASSWORD` and `MYSQL_PASSWORD` variables before you run this setup. + +```yaml +version: '2' + +volumes: + nextcloud: + db: + +services: + db: + image: mariadb + command: --transaction-isolation=READ-COMMITTED --binlog-format=ROW + restart: always + volumes: + - db:/var/lib/mysql + environment: + - MYSQL_ROOT_PASSWORD= + - MYSQL_PASSWORD= + - MYSQL_DATABASE=nextcloud + - MYSQL_USER=nextcloud + + app: + image: nextcloud + ports: + - 8080:80 + links: + - db + volumes: + - nextcloud:/var/www/html + restart: always + +``` + +Then run `docker-compose up -d`, now you can access Nextcloud at http://localhost:8080/ from your host system. + +## Base version - FPM +When using the FPM image, you need another container that acts as web server on port 80 and proxies the requests to the Nextcloud container. In this example a simple nginx container is combined with the Nextcloud-fpm image and a MariaDB database container. The data is stored in docker volumes. The nginx container also needs access to static files from your Nextcloud installation. It gets access to all the volumes mounted to Nextcloud via the `volumes_from` option.The configuration for nginx is stored in the configuration file `nginx.conf`, that is mounted into the container. An example can be found in the examples section [here](https://github.com/nextcloud/docker/tree/master/.examples). + +As this setup does **not include encryption**, it should be run behind a proxy. + +Make sure to pass in values for `MYSQL_ROOT_PASSWORD` and `MYSQL_PASSWORD` variables before you run this setup. + +```yaml +version: '2' + +volumes: + nextcloud: + db: + +services: + db: + image: mariadb + command: --transaction-isolation=READ-COMMITTED --binlog-format=ROW + restart: always + volumes: + - db:/var/lib/mysql + environment: + - MYSQL_ROOT_PASSWORD= + - MYSQL_PASSWORD= + - MYSQL_DATABASE=nextcloud + - MYSQL_USER=nextcloud + + app: + image: nextcloud:fpm + links: + - db + volumes: + - nextcloud:/var/www/html + restart: always + + web: + image: nginx + ports: + - 8080:80 + links: + - app + volumes: + - ./nginx.conf:/etc/nginx/nginx.conf:ro + volumes_from: + - app + restart: always +``` + +Then run `docker-compose up -d`, now you can access Nextcloud at http://localhost:8080/ from your host system. + +# Docker Secrets +As an alternative to passing sensitive information via environment variables, _FILE may be appended to the previously listed environment variables, causing the initialization script to load the values for those variables from files present in the container. In particular, this can be used to load passwords from Docker secrets stored in /run/secrets/ files. For example: +```yaml +version: '3.2' + +services: + db: + image: postgres + restart: always + volumes: + - db:/var/lib/postgresql/data + environment: + - POSTGRES_DB_FILE=/run/secrets/postgres_db + - POSTGRES_USER_FILE=/run/secrets/postgres_user + - POSTGRES_PASSWORD_FILE=/run/secrets/postgres_password + secrets: + - postgres_db + - postgres_password + - postgres_user + + app: + image: nextcloud + restart: always + ports: + - 8080:80 + volumes: + - nextcloud:/var/www/html + environment: + - POSTGRES_HOST=db + - POSTGRES_DB_FILE=/run/secrets/postgres_db + - POSTGRES_USER_FILE=/run/secrets/postgres_user + - POSTGRES_PASSWORD_FILE=/run/secrets/postgres_password + - NEXTCLOUD_ADMIN_PASSWORD_FILE=/run/secrets/nextcloud_admin_password + - NEXTCLOUD_ADMIN_USER_FILE=/run/secrets/nextcloud_admin_user + depends_on: + - db + secrets: + - nextcloud_admin_password + - nextcloud_admin_user + - postgres_db + - postgres_password + - postgres_user + +volumes: + db: + nextcloud: + +secrets: + nextcloud_admin_password: + file: ./nextcloud_admin_password.txt # put admin password to this file + nextcloud_admin_user: + file: ./nextcloud_admin_user.txt # put admin username to this file + postgres_db: + file: ./postgres_db.txt # put postgresql db name to this file + postgres_password: + file: ./postgres_password.txt # put postgresql password to this file + postgres_user: + file: ./postgres_user.txt # put postgresql username to this file +``` + +Currently, this is only supported for `NEXTCLOUD_ADMIN_PASSWORD`, `NEXTCLOUD_ADMIN_USER`, `MYSQL_DB`, `MYSQL_PASSWORD`, `MYSQL_USER`, `POSTGRES_DB`, `POSTGRES_PASSWORD`, `POSTGRES_USER`. + +# Make your Nextcloud available from the internet +Until here, your Nextcloud is just available from you docker host. If you want your Nextcloud available from the internet adding SSL encryption is mandatory. + +## HTTPS - SSL encryption +There are many different possibilities to introduce encryption depending on your setup. + +We recommend using a reverse proxy in front of our Nextcloud installation. Your Nextcloud will only be reachable through the proxy, which encrypts all traffic to the clients. You can mount your manually generated certificates to the proxy or use a fully automated solution which generates and renews the certificates for you. + +In our [examples](https://github.com/nextcloud/docker/tree/master/.examples) section we have an example for a fully automated setup using a reverse proxy, a container for [Let's Encrypt](https://letsencrypt.org/) certificate handling, database and Nextcloud. It uses the popular [nginx-proxy](https://github.com/jwilder/nginx-proxy) and [docker-letsencrypt-nginx-proxy-companion](https://github.com/JrCs/docker-letsencrypt-nginx-proxy-companion) containers. Please check the according documentations before using this setup. + +# First use +When you first access your Nextcloud, the setup wizard will appear and ask you to choose an administrator account username, password and the database connection. For the database use `db` as host and `nextcloud` as table and user name. Also enter the password you chose in your `docker-compose.yml` file. + +# Update to a newer version +Updating the Nextcloud container is done by pulling the new image, throwing away the old container and starting the new one. + +**It is only possible to upgrade one major version at a time. For example, if you want to upgrade from version 14 to 16, you will have to upgrade from version 14 to 15, then from 15 to 16.** + +Since all data is stored in volumes, nothing gets lost. The startup script will check for the version in your volume and the installed docker version. If it finds a mismatch, it automatically starts the upgrade process. Don't forget to add all the volumes to your new container, so it works as expected. + +```console +$ docker pull nextcloud +$ docker stop +$ docker rm +$ docker run -d nextcloud +``` +Beware that you have to run the same command with the options that you used to initially start your Nextcloud. That includes volumes, port mapping. + +When using docker-compose your compose file takes care of your configuration, so you just have to run: + +```console +$ docker-compose pull +$ docker-compose up -d +``` + + +# Adding Features +A lot of people want to use additional functionality inside their Nextcloud installation. If the image does not include the packages you need, you can easily build your own image on top of it. +Start your derived image with the `FROM` statement and add whatever you like. + +```yaml +FROM nextcloud:apache + +RUN ... + +``` +The [examples folder](https://github.com/nextcloud/docker/blob/master/.examples) gives a few examples on how to add certain functionalities, like including the cron job, smb-support or imap-authentication. + +If you use your own Dockerfile, you need to configure your docker-compose file accordingly. Switch out the `image` option with `build`. You have to specify the path to your Dockerfile. (in the example it's in the same directory next to the docker-compose file) + +```yaml + app: + build: . + links: + - db + volumes: + - data:/var/www/html/data + - config:/var/www/html/config + - apps:/var/www/html/apps + restart: always +``` + +If you intend to use another command to run the image, make sure that you set `NEXTCLOUD_UPDATE=1` in your Dockerfile. Otherwise the installation and update will not work. + +```yaml +FROM nextcloud:apache + +... + +ENV NEXTCLOUD_UPDATE=1 + +CMD ["/usr/bin/supervisord"] +``` + + +**Updating** your own derived image is also very simple. When a new version of the Nextcloud image is available run: + +```console +docker build -t your-name --pull . +docker run -d your-name +``` + +or for docker-compose: +```console +docker-compose build --pull +docker-compose up -d +``` + +The `--pull` option tells docker to look for new versions of the base image. Then the build instructions inside your `Dockerfile` are run on top of the new image. + +# Migrating an existing installation +You're already using Nextcloud and want to switch to docker? Great! Here are some things to look out for: + +1. Define your whole Nextcloud infrastructure in a `docker-compose` file and run it with `docker-compose up -d` to get the base installation, volumes and database. Work from there. +2. Restore your database from a mysqldump (nextcloud\_db\_1 is the name of your db container) + - To import from a MySQL dump use the following commands + ```console + docker cp ./database.dmp nextcloud_db_1:/dmp + docker-compose exec db sh -c "mysql -u USER -pPASSWORD nextcloud < /dmp" + docker-compose exec db rm /dmp + ``` + - To import from a PostgreSQL dump use to following commands + ```console + docker cp ./database.dmp nextcloud_db_1:/dmp + docker-compose exec db sh -c "psql -U USER --set ON_ERROR_STOP=on nextcloud < /dmp" + docker-compose exec db rm /dmp + ``` +3. Edit your config.php + 1. Set database connection + - In case of MySQL database + ```php + 'dbhost' => 'db:3306', + ``` + - In case of PostgreSQL database + ```php + 'dbhost' => 'db:5432', + ``` + 2. Make sure you have no configuration for the `apps_paths`. Delete lines like these + ```diff + - "apps_paths" => array ( + - 0 => array ( + - "path" => OC::$SERVERROOT."/apps", + - "url" => "/apps", + - "writable" => true, + - ), + ``` + 3. Make sure to have the `apps` directory non writable and the `custom_apps` directory writable + ```php + 'apps_paths' => array ( + 0 => array ( + 'path' => '/var/www/html/apps', + 'url' => '/apps', + 'writable' => false, + ), + 1 => array ( + 'path' => '/var/www/html/custom_apps', + 'url' => '/custom_apps', + 'writable' => true, + ), + ), + ``` + 4. Make sure your data directory is set to /var/www/html/data + ```php + 'datadirectory' => '/var/www/html/data', + ``` + + +4. Copy your data (nextcloud_app_1 is the name of your Nextcloud container): +```console +docker cp ./data/ nextcloud_app_1:/var/www/html/ +docker-compose exec app chown -R www-data:www-data /var/www/html/data +docker cp ./theming/ nextcloud_app_1:/var/www/html/ +docker-compose exec app chown -R www-data:www-data /var/www/html/theming +docker cp ./config/config.php nextcloud_app_1:/var/www/html/config +docker-compose exec app chown -R www-data:www-data /var/www/html/config +``` +5. Copy only the custom apps you use (or simply redownload them from the web interface): +```console +docker cp ./custom_apps/ nextcloud_data:/var/www/html/ +docker-compose exec app chown -R www-data:www-data /var/www/html/custom_apps +``` + +# Questions / Issues +If you got any questions or problems using the image, please visit our [Github Repository](https://github.com/nextcloud/docker) and write an issue. diff --git a/linux/advanced/nextcloud/pure/29/docker-compose.yml b/linux/advanced/nextcloud/pure/29/docker-compose.yml new file mode 100644 index 000000000..3512a17b9 --- /dev/null +++ b/linux/advanced/nextcloud/pure/29/docker-compose.yml @@ -0,0 +1,6 @@ +version: '3' +services: + app: + image: "epicmorg/nextcloud:29" + build: + context: . diff --git a/linux/advanced/nextcloud/pure/29/smb.conf b/linux/advanced/nextcloud/pure/29/smb.conf new file mode 100644 index 000000000..9346a22f4 --- /dev/null +++ b/linux/advanced/nextcloud/pure/29/smb.conf @@ -0,0 +1,239 @@ +# +# Sample configuration file for the Samba suite for Debian GNU/Linux. +# +# +# This is the main Samba configuration file. You should read the +# smb.conf(5) manual page in order to understand the options listed +# here. Samba has a huge number of configurable options most of which +# are not shown in this example +# +# Some options that are often worth tuning have been included as +# commented-out examples in this file. +# - When such options are commented with ";", the proposed setting +# differs from the default Samba behaviour +# - When commented with "#", the proposed setting is the default +# behaviour of Samba but the option is considered important +# enough to be mentioned here +# +# NOTE: Whenever you modify this file you should run the command +# "testparm" to check that you have not made any basic syntactic +# errors. + +#======================= Global Settings ======================= + +[global] +client min protocol = SMB2 +client max protocol = SMB3 + + +## Browsing/Identification ### + +# Change this to the workgroup/NT-domain name your Samba server will part of + workgroup = WORKGROUP + +#### Networking #### + +# The specific set of interfaces / networks to bind to +# This can be either the interface name or an IP address/netmask; +# interface names are normally preferred +; interfaces = 127.0.0.0/8 eth0 + +# Only bind to the named interfaces and/or networks; you must use the +# 'interfaces' option above to use this. +# It is recommended that you enable this feature if your Samba machine is +# not protected by a firewall or is a firewall itself. However, this +# option cannot handle dynamic or non-broadcast interfaces correctly. +; bind interfaces only = yes + + + +#### Debugging/Accounting #### + +# This tells Samba to use a separate log file for each machine +# that connects + log file = /var/log/samba/log.%m + +# Cap the size of the individual log files (in KiB). + max log size = 1000 + +# We want Samba to only log to /var/log/samba/log.{smbd,nmbd}. +# Append syslog@1 if you want important messages to be sent to syslog too. + logging = file + +# Do something sensible when Samba crashes: mail the admin a backtrace + panic action = /usr/share/samba/panic-action %d + + +####### Authentication ####### + +# Server role. Defines in which mode Samba will operate. Possible +# values are "standalone server", "member server", "classic primary +# domain controller", "classic backup domain controller", "active +# directory domain controller". +# +# Most people will want "standalone server" or "member server". +# Running as "active directory domain controller" will require first +# running "samba-tool domain provision" to wipe databases and create a +# new domain. + server role = standalone server + + obey pam restrictions = yes + +# This boolean parameter controls whether Samba attempts to sync the Unix +# password with the SMB password when the encrypted SMB password in the +# passdb is changed. + unix password sync = yes + +# For Unix password sync to work on a Debian GNU/Linux system, the following +# parameters must be set (thanks to Ian Kahan < for +# sending the correct chat script for the passwd program in Debian Sarge). + passwd program = /usr/bin/passwd %u + passwd chat = *Enter\snew\s*\spassword:* %n\n *Retype\snew\s*\spassword:* %n\n *password\supdated\ssuccessfully* . + +# This boolean controls whether PAM will be used for password changes +# when requested by an SMB client instead of the program listed in +# 'passwd program'. The default is 'no'. + pam password change = yes + +# This option controls how unsuccessful authentication attempts are mapped +# to anonymous connections + map to guest = bad user + +########## Domains ########### + +# +# The following settings only takes effect if 'server role = primary +# classic domain controller', 'server role = backup domain controller' +# or 'domain logons' is set +# + +# It specifies the location of the user's +# profile directory from the client point of view) The following +# required a [profiles] share to be setup on the samba server (see +# below) +; logon path = \\%N\profiles\%U +# Another common choice is storing the profile in the user's home directory +# (this is Samba's default) +# logon path = \\%N\%U\profile + +# The following setting only takes effect if 'domain logons' is set +# It specifies the location of a user's home directory (from the client +# point of view) +; logon drive = H: +# logon home = \\%N\%U + +# The following setting only takes effect if 'domain logons' is set +# It specifies the script to run during logon. The script must be stored +# in the [netlogon] share +# NOTE: Must be store in 'DOS' file format convention +; logon script = logon.cmd + +# This allows Unix users to be created on the domain controller via the SAMR +# RPC pipe. The example command creates a user account with a disabled Unix +# password; please adapt to your needs +; add user script = /usr/sbin/adduser --quiet --disabled-password --gecos "" %u + +# This allows machine accounts to be created on the domain controller via the +# SAMR RPC pipe. +# The following assumes a "machines" group exists on the system +; add machine script = /usr/sbin/useradd -g machines -c "%u machine account" -d /var/lib/samba -s /bin/false %u + +# This allows Unix groups to be created on the domain controller via the SAMR +# RPC pipe. +; add group script = /usr/sbin/addgroup --force-badname %g + +############ Misc ############ + +# Using the following line enables you to customise your configuration +# on a per machine basis. The %m gets replaced with the netbios name +# of the machine that is connecting +; include = /home/samba/etc/smb.conf.%m + +# Some defaults for winbind (make sure you're not using the ranges +# for something else.) +; idmap config * : backend = tdb +; idmap config * : range = 3000-7999 +; idmap config YOURDOMAINHERE : backend = tdb +; idmap config YOURDOMAINHERE : range = 100000-999999 +; template shell = /bin/bash + +# Setup usershare options to enable non-root users to share folders +# with the net usershare command. + +# Maximum number of usershare. 0 means that usershare is disabled. +# usershare max shares = 100 + +# Allow users who've been granted usershare privileges to create +# public shares, not just authenticated ones + usershare allow guests = yes + +#======================= Share Definitions ======================= + +[homes] + comment = Home Directories + browseable = no + +# By default, the home directories are exported read-only. Change the +# next parameter to 'no' if you want to be able to write to them. + read only = yes + +# File creation mask is set to 0700 for security reasons. If you want to +# create files with group=rw permissions, set next parameter to 0775. + create mask = 0700 + +# Directory creation mask is set to 0700 for security reasons. If you want to +# create dirs. with group=rw permissions, set next parameter to 0775. + directory mask = 0700 + +# By default, \\server\username shares can be connected to by anyone +# with access to the samba server. +# The following parameter makes sure that only "username" can connect +# to \\server\username +# This might need tweaking when using external authentication schemes + valid users = %S + +# Un-comment the following and create the netlogon directory for Domain Logons +# (you need to configure Samba to act as a domain controller too.) +;[netlogon] +; comment = Network Logon Service +; path = /home/samba/netlogon +; guest ok = yes +; read only = yes + +# Un-comment the following and create the profiles directory to store +# users profiles (see the "logon path" option above) +# (you need to configure Samba to act as a domain controller too.) +# The path below should be writable by all users so that their +# profile directory may be created the first time they log on +;[profiles] +; comment = Users profiles +; path = /home/samba/profiles +; guest ok = no +; browseable = no +; create mask = 0600 +; directory mask = 0700 + +[printers] + comment = All Printers + browseable = no + path = /var/spool/samba + printable = yes + guest ok = no + read only = yes + create mask = 0700 + +# Windows clients look for this share name as a source of downloadable +# printer drivers +[print$] + comment = Printer Drivers + path = /var/lib/samba/printers + browseable = yes + read only = yes + guest ok = no +# Uncomment to allow remote administration of Windows print drivers. +# You may need to replace 'lpadmin' with the name of the group your +# admin users are members of. +# Please note that you also need to set appropriate Unix permissions +# to the drivers directory for these users to have write rights in it +; write list = root, @lpadmin + diff --git a/linux/advanced/nextcloud/pure/29/sources.list b/linux/advanced/nextcloud/pure/29/sources.list new file mode 100644 index 000000000..74d6b3662 --- /dev/null +++ b/linux/advanced/nextcloud/pure/29/sources.list @@ -0,0 +1,22 @@ +#main +deb [trusted=yes] http://httpredir.debian.org/debian/ bookworm main contrib non-free non-free-firmware +deb-src [trusted=yes] http://httpredir.debian.org/debian/ bookworm main contrib non-free non-free-firmware + +deb [trusted=yes] http://httpredir.debian.org/debian/ bookworm-updates main contrib non-free non-free-firmware +deb-src [trusted=yes] http://httpredir.debian.org/debian/ bookworm-updates main contrib non-free non-free-firmware + +deb [trusted=yes] http://httpredir.debian.org/debian/ bookworm-backports main contrib non-free non-free-firmware +deb-src [trusted=yes] http://httpredir.debian.org/debian/ bookworm-backports main contrib non-free non-free-firmware + +#deb [trusted=yes] http://httpredir.debian.org/debian/ bookworm-backports-sloppy main contrib non-free non-free-firmware +#deb-src [trusted=yes] http://httpredir.debian.org/debian/ bookworm-backports-sloppy main contrib non-free non-free-firmware + +deb [trusted=yes] http://httpredir.debian.org/debian/ bookworm-proposed-updates main contrib non-free non-free-firmware +deb-src [trusted=yes] http://httpredir.debian.org/debian/ bookworm-proposed-updates main contrib non-free non-free-firmware + +#security +deb [trusted=yes] http://security.debian.org/debian-security/ bookworm-security main contrib non-free non-free-firmware +deb-src [trusted=yes] http://security.debian.org/debian-security/ bookworm-security main contrib non-free non-free-firmware + +deb [trusted=yes] http://httpredir.debian.org/debian-security/ bookworm-security main contrib non-free non-free-firmware +deb-src [trusted=yes] http://httpredir.debian.org/debian-security/ bookworm-security main contrib non-free non-free-firmware diff --git a/linux/advanced/python/main/2.7/etc/apt/sources.list b/linux/advanced/python/main/2.7/etc/apt/sources.list index ca557e89f..a02c0b64f 100644 --- a/linux/advanced/python/main/2.7/etc/apt/sources.list +++ b/linux/advanced/python/main/2.7/etc/apt/sources.list @@ -1,18 +1,18 @@ #main -deb [trusted=yes] http://httpredir.debian.org/debian/ buster main contrib non-free -deb-src [trusted=yes] http://httpredir.debian.org/debian/ buster main contrib non-free +deb [trusted=yes] http://archive.debian.org/debian/ buster main contrib non-free +deb-src [trusted=yes] http://archive.debian.org/debian/ buster main contrib non-free -deb [trusted=yes] http://httpredir.debian.org/debian/ buster-updates main contrib non-free -deb-src [trusted=yes] http://httpredir.debian.org/debian/ buster-updates main contrib non-free +deb [trusted=yes] http://archive.debian.org/debian/ buster-updates main contrib non-free +deb-src [trusted=yes] http://archive.debian.org/debian/ buster-updates main contrib non-free -deb [trusted=yes] http://httpredir.debian.org/debian/ buster-backports main contrib non-free -deb-src [trusted=yes] http://httpredir.debian.org/debian/ buster-backports main contrib non-free +deb [trusted=yes] http://archive.debian.org/debian/ buster-backports main contrib non-free +deb-src [trusted=yes] http://archive.debian.org/debian/ buster-backports main contrib non-free -deb [trusted=yes] http://httpredir.debian.org/debian/ buster-backports-sloppy main contrib non-free -deb-src [trusted=yes] http://httpredir.debian.org/debian/ buster-backports-sloppy main contrib non-free +deb [trusted=yes] http://archive.debian.org/debian/ buster-backports-sloppy main contrib non-free +deb-src [trusted=yes] http://archive.debian.org/debian/ buster-backports-sloppy main contrib non-free -deb [trusted=yes] http://httpredir.debian.org/debian/ buster-proposed-updates main contrib non-free -deb-src [trusted=yes] http://httpredir.debian.org/debian/ buster-proposed-updates main contrib non-free +deb [trusted=yes] http://archive.debian.org/debian/ buster-proposed-updates main contrib non-free +deb-src [trusted=yes] http://archive.debian.org/debian/ buster-proposed-updates main contrib non-free #security deb [trusted=yes] http://security.debian.org/debian-security/ buster/updates main contrib non-free diff --git a/linux/ecosystem/epicmorg/astra/1.7-alse/slim/etc/apt/sources.list b/linux/ecosystem/epicmorg/astra/1.7-alse/slim/etc/apt/sources.list index 9a5b906b5..112c8a0bc 100644 --- a/linux/ecosystem/epicmorg/astra/1.7-alse/slim/etc/apt/sources.list +++ b/linux/ecosystem/epicmorg/astra/1.7-alse/slim/etc/apt/sources.list @@ -1,17 +1,22 @@ # Основной репозиторий deb https://dl.astralinux.ru/astra/stable/1.7_x86-64/repository-main/ 1.7_x86-64 main contrib non-free +deb https://mirror.yandex.ru/mirrors/astralinux/stable/1.7_x86-64/repository-main/ 1.7_x86-64 main contrib non-free # Оперативные обновления основного репозитория deb https://dl.astralinux.ru/astra/stable/1.7_x86-64/repository-update/ 1.7_x86-64 main contrib non-free +deb https://mirror.yandex.ru/mirrors/astralinux/stable/1.7_x86-64/repository-update/ 1.7_x86-64 main contrib non-free # Базовый репозиторий deb https://dl.astralinux.ru/astra/stable/1.7_x86-64/repository-base/ 1.7_x86-64 main contrib non-free +deb https://mirror.yandex.ru/mirrors/astralinux/stable/1.7_x86-64/repository-base/ 1.7_x86-64 main contrib non-free # Расширенный репозиторий deb https://dl.astralinux.ru/astra/stable/1.7_x86-64/repository-extended/ 1.7_x86-64 main contrib non-free +deb https://mirror.yandex.ru/mirrors/astralinux/stable/1.7_x86-64/repository-extended/ 1.7_x86-64 main contrib non-free # Расширенный репозиторий (компонент astra-ce) deb https://dl.astralinux.ru/astra/stable/1.7_x86-64/repository-extended/ 1.7_x86-64 astra-ce # Последнее срочное обновление (если доступно): -deb https://dl.astralinux.ru/astra/stable/1.7_x86-64/uu/last/repository-update/ 1.7_x86-64 main contrib non-free +#deb https://dl.astralinux.ru/astra/stable/1.7_x86-64/uu/last/repository-update/ main contrib non-free + diff --git a/linux/ecosystem/epicmorg/debian/08-jessie/jdk11/Dockerfile b/linux/ecosystem/epicmorg/debian/08-jessie/jdk11/Dockerfile index fc5c6632f..e0b80f271 100644 --- a/linux/ecosystem/epicmorg/debian/08-jessie/jdk11/Dockerfile +++ b/linux/ecosystem/epicmorg/debian/08-jessie/jdk11/Dockerfile @@ -2,19 +2,20 @@ FROM epicmorg/debian:jessie LABEL maintainer="EpicMorg DevTeam, developer@epicm.org" ARG DEBIAN_FRONTEND=noninteractive +ARG K_JDK_MAJOR_VERSION=jdk-11.0.23 +ARG K_JDK_VERSION=11.0.23 +ARG K_JDK_BUILD_VERSION=9 +ARG K_JDK_URL=https://github.com/adoptium/temurin11-binaries/releases/download/${K_JDK_MAJOR_VERSION}+${K_JDK_BUILD_VERSION}/OpenJDK11U-jdk_x64_linux_hotspot_${K_JDK_VERSION}_${K_JDK_BUILD_VERSION}.tar.gz + +ENV JAVA_HOME=/opt/${K_JDK_MAJOR_VERSION}+${K_JDK_BUILD_VERSION} +ENV PATH=$PATH:${JAVA_HOME}/bin + ################################################################## # installing java11 ################################################################## -RUN wget --no-check-certificate -O - https://packages.adoptium.net/artifactory/api/gpg/key/public | gpg --dearmor > /etc/apt/trusted.gpg.d/adoptium.gpg && \ - echo 'deb https://packages.adoptium.net/artifactory/deb bookworm main' > /etc/apt/sources.list.d/temurin-official.list && \ -# wget --no-check-certificate -O - https://packages.adoptium.net/artifactory/api/gpg/key/public | tee /etc/apt/keyrings/adoptium.asc && \ -# echo 'deb [signed-by=/etc/apt/keyrings/adoptium.asc] https://packages.adoptium.net/artifactory/deb bookworm main' > /etc/apt/sources.list.d/temurin-official.list && \ - apt-get update && \ - apt-get autoremove -y && \ - apt-get install -y --allow-unauthenticated -t bookworm temurin-11-jdk temurin-11-jre && \ - mkdir /usr/lib/jvm/temurin-11-jdk-amd64/jre && \ - ln -s /usr/lib/jvm/temurin-11-jdk-amd64/bin/ /usr/lib/jvm/temurin-11-jdk-amd64/jre/bin && \ - ln -s /usr/lib/jvm/temurin-11-jdk-amd64/lib/ /usr/lib/jvm/temurin-11-jdk-amd64/jre/lib && \ +RUN curl --user-agent "Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Firefox/81.0" --location ${K_JDK_URL}?$(date +%s) \ + --header 'Cache-Control: no-cache, no-store' \ + --header 'Pragma: no-cache' | tar xzv --directory /opt && \ java -version ################################################################## diff --git a/linux/ecosystem/epicmorg/debian/08-jessie/jdk11/Dockerfile.develop b/linux/ecosystem/epicmorg/debian/08-jessie/jdk11/Dockerfile.develop index 5bbd02a7f..c4abba884 100644 --- a/linux/ecosystem/epicmorg/debian/08-jessie/jdk11/Dockerfile.develop +++ b/linux/ecosystem/epicmorg/debian/08-jessie/jdk11/Dockerfile.develop @@ -2,19 +2,20 @@ FROM epicmorg/debian:jessie-develop LABEL maintainer="EpicMorg DevTeam, developer@epicm.org" ARG DEBIAN_FRONTEND=noninteractive +ARG K_JDK_MAJOR_VERSION=jdk-11.0.23 +ARG K_JDK_VERSION=11.0.23 +ARG K_JDK_BUILD_VERSION=9 +ARG K_JDK_URL=https://github.com/adoptium/temurin11-binaries/releases/download/${K_JDK_MAJOR_VERSION}+${K_JDK_BUILD_VERSION}/OpenJDK11U-jdk_x64_linux_hotspot_${K_JDK_VERSION}_${K_JDK_BUILD_VERSION}.tar.gz + +ENV JAVA_HOME=/opt/${K_JDK_MAJOR_VERSION}+${K_JDK_BUILD_VERSION} +ENV PATH=$PATH:${JAVA_HOME}/bin + ################################################################## # installing java11 ################################################################## -RUN wget --no-check-certificate -O - https://packages.adoptium.net/artifactory/api/gpg/key/public | gpg --dearmor > /etc/apt/trusted.gpg.d/adoptium.gpg && \ - echo 'deb https://packages.adoptium.net/artifactory/deb bookworm main' > /etc/apt/sources.list.d/temurin-official.list && \ -# wget --no-check-certificate -O - https://packages.adoptium.net/artifactory/api/gpg/key/public | tee /etc/apt/keyrings/adoptium.asc && \ -# echo 'deb [signed-by=/etc/apt/keyrings/adoptium.asc] https://packages.adoptium.net/artifactory/deb bookworm main' > /etc/apt/sources.list.d/temurin-official.list && \ - apt-get update && \ - apt-get autoremove -y && \ - apt-get install -y --allow-unauthenticated -t bookworm temurin-11-jdk temurin-11-jre && \ - mkdir /usr/lib/jvm/temurin-11-jdk-amd64/jre && \ - ln -s /usr/lib/jvm/temurin-11-jdk-amd64/bin/ /usr/lib/jvm/temurin-11-jdk-amd64/jre/bin && \ - ln -s /usr/lib/jvm/temurin-11-jdk-amd64/lib/ /usr/lib/jvm/temurin-11-jdk-amd64/jre/lib && \ +RUN curl --user-agent "Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Firefox/81.0" --location ${K_JDK_URL}?$(date +%s) \ + --header 'Cache-Control: no-cache, no-store' \ + --header 'Pragma: no-cache' | tar xzv --directory /opt && \ java -version ################################################################## diff --git a/linux/ecosystem/epicmorg/debian/08-jessie/jdk17/Dockerfile b/linux/ecosystem/epicmorg/debian/08-jessie/jdk17/Dockerfile index 47192f6b6..b88159429 100644 --- a/linux/ecosystem/epicmorg/debian/08-jessie/jdk17/Dockerfile +++ b/linux/ecosystem/epicmorg/debian/08-jessie/jdk17/Dockerfile @@ -2,20 +2,22 @@ FROM epicmorg/debian:jessie LABEL maintainer="EpicMorg DevTeam, developer@epicm.org" ARG DEBIAN_FRONTEND=noninteractive +ARG K_JDK_MAJOR_VERSION=jdk-17.0.11 +ARG K_JDK_VERSION=17.0.11 +ARG K_JDK_BUILD_VERSION=9 +ARG K_JDK_URL=https://github.com/adoptium/temurin17-binaries/releases/download/${K_JDK_MAJOR_VERSION}+${K_JDK_BUILD_VERSION}/OpenJDK17U-jdk_x64_linux_hotspot_${K_JDK_VERSION}_${K_JDK_BUILD_VERSION}.tar.gz + +ENV JAVA_HOME=/opt/${K_JDK_MAJOR_VERSION}+${K_JDK_BUILD_VERSION} +ENV PATH=$PATH:${JAVA_HOME}/bin + ################################################################## # installing java17 ################################################################## -RUN wget --no-check-certificate -O - https://packages.adoptium.net/artifactory/api/gpg/key/public | gpg --dearmor > /etc/apt/trusted.gpg.d/adoptium.gpg && \ - echo 'deb https://packages.adoptium.net/artifactory/deb bookworm main' > /etc/apt/sources.list.d/temurin-official.list && \ -# wget --no-check-certificate -O - https://packages.adoptium.net/artifactory/api/gpg/key/public | tee /etc/apt/keyrings/adoptium.asc && \ -# echo 'deb [signed-by=/etc/apt/keyrings/adoptium.asc] https://packages.adoptium.net/artifactory/deb bookworm main' > /etc/apt/sources.list.d/temurin-official.list && \ - apt-get update && \ - apt-get autoremove -y && \ - apt-get install -y --allow-unauthenticated -t bookworm temurin-17-jdk temurin-17-jre && \ - mkdir /usr/lib/jvm/temurin-17-jdk-amd64/jre && \ - ln -s /usr/lib/jvm/temurin-17-jdk-amd64/bin/ /usr/lib/jvm/temurin-17-jdk-amd64/jre/bin && \ - ln -s /usr/lib/jvm/temurin-17-jdk-amd64/lib/ /usr/lib/jvm/temurin-17-jdk-amd64/jre/lib && \ +RUN curl --user-agent "Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Firefox/81.0" --location ${K_JDK_URL}?$(date +%s) \ + --header 'Cache-Control: no-cache, no-store' \ + --header 'Pragma: no-cache' | tar xzv --directory /opt && \ java -version + ################################################################## # Additional settings ################################################################## diff --git a/linux/ecosystem/epicmorg/debian/08-jessie/jdk17/Dockerfile.develop b/linux/ecosystem/epicmorg/debian/08-jessie/jdk17/Dockerfile.develop index 9bcdfb975..c1401c54b 100644 --- a/linux/ecosystem/epicmorg/debian/08-jessie/jdk17/Dockerfile.develop +++ b/linux/ecosystem/epicmorg/debian/08-jessie/jdk17/Dockerfile.develop @@ -2,19 +2,20 @@ FROM epicmorg/debian:jessie-develop LABEL maintainer="EpicMorg DevTeam, developer@epicm.org" ARG DEBIAN_FRONTEND=noninteractive +ARG K_JDK_MAJOR_VERSION=jdk-17.0.11 +ARG K_JDK_VERSION=17.0.11 +ARG K_JDK_BUILD_VERSION=9 +ARG K_JDK_URL=https://github.com/adoptium/temurin17-binaries/releases/download/${K_JDK_MAJOR_VERSION}+${K_JDK_BUILD_VERSION}/OpenJDK17U-jdk_x64_linux_hotspot_${K_JDK_VERSION}_${K_JDK_BUILD_VERSION}.tar.gz + +ENV JAVA_HOME=/opt/${K_JDK_MAJOR_VERSION}+${K_JDK_BUILD_VERSION} +ENV PATH=$PATH:${JAVA_HOME}/bin + ################################################################## # installing java17 ################################################################## -RUN wget --no-check-certificate -O - https://packages.adoptium.net/artifactory/api/gpg/key/public | gpg --dearmor > /etc/apt/trusted.gpg.d/adoptium.gpg && \ - echo 'deb https://packages.adoptium.net/artifactory/deb bookworm main' > /etc/apt/sources.list.d/temurin-official.list && \ -# wget --no-check-certificate -O - https://packages.adoptium.net/artifactory/api/gpg/key/public | tee /etc/apt/keyrings/adoptium.asc && \ -# echo 'deb [signed-by=/etc/apt/keyrings/adoptium.asc] https://packages.adoptium.net/artifactory/deb bookworm main' > /etc/apt/sources.list.d/temurin-official.list && \ - apt-get update && \ - apt-get autoremove -y && \ - apt-get install -y --allow-unauthenticated -t bookworm temurin-17-jdk temurin-17-jre && \ - mkdir /usr/lib/jvm/temurin-17-jdk-amd64/jre && \ - ln -s /usr/lib/jvm/temurin-17-jdk-amd64/bin/ /usr/lib/jvm/temurin-17-jdk-amd64/jre/bin && \ - ln -s /usr/lib/jvm/temurin-17-jdk-amd64/lib/ /usr/lib/jvm/temurin-17-jdk-amd64/jre/lib && \ +RUN curl --user-agent "Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Firefox/81.0" --location ${K_JDK_URL}?$(date +%s) \ + --header 'Cache-Control: no-cache, no-store' \ + --header 'Pragma: no-cache' | tar xzv --directory /opt && \ java -version ################################################################## diff --git a/linux/ecosystem/epicmorg/debian/08-jessie/jdk20/Dockerfile b/linux/ecosystem/epicmorg/debian/08-jessie/jdk20/Dockerfile index 1f35ba8b8..fe094efb9 100644 --- a/linux/ecosystem/epicmorg/debian/08-jessie/jdk20/Dockerfile +++ b/linux/ecosystem/epicmorg/debian/08-jessie/jdk20/Dockerfile @@ -2,19 +2,20 @@ FROM epicmorg/debian:jessie LABEL maintainer="EpicMorg DevTeam, developer@epicm.org" ARG DEBIAN_FRONTEND=noninteractive +ARG K_JDK_MAJOR_VERSION=jdk-20.0.2 +ARG K_JDK_VERSION=20.0.2 +ARG K_JDK_BUILD_VERSION=9 +ARG K_JDK_URL=https://github.com/adoptium/temurin20-binaries/releases/download/${K_JDK_MAJOR_VERSION}+${K_JDK_BUILD_VERSION}/OpenJDK20U-jdk_x64_linux_hotspot_${K_JDK_VERSION}_${K_JDK_BUILD_VERSION}.tar.gz + +ENV JAVA_HOME=/opt/${K_JDK_MAJOR_VERSION}+${K_JDK_BUILD_VERSION} +ENV PATH=$PATH:${JAVA_HOME}/bin + ################################################################## # installing java20 ################################################################## -RUN wget --no-check-certificate -O - https://packages.adoptium.net/artifactory/api/gpg/key/public | gpg --dearmor > /etc/apt/trusted.gpg.d/adoptium.gpg && \ - echo 'deb https://packages.adoptium.net/artifactory/deb bookworm main' > /etc/apt/sources.list.d/temurin-official.list && \ -# wget --no-check-certificate -O - https://packages.adoptium.net/artifactory/api/gpg/key/public | tee /etc/apt/keyrings/adoptium.asc && \ -# echo 'deb [signed-by=/etc/apt/keyrings/adoptium.asc] https://packages.adoptium.net/artifactory/deb bookworm main' > /etc/apt/sources.list.d/temurin-official.list && \ - apt-get update && \ - apt-get autoremove -y && \ - apt-get install -y --allow-unauthenticated -t bookworm temurin-20-jdk temurin-20-jre && \ - mkdir /usr/lib/jvm/temurin-20-jdk-amd64/jre && \ - ln -s /usr/lib/jvm/temurin-20-jdk-amd64/bin/ /usr/lib/jvm/temurin-20-jdk-amd64/jre/bin && \ - ln -s /usr/lib/jvm/temurin-20-jdk-amd64/lib/ /usr/lib/jvm/temurin-20-jdk-amd64/jre/lib && \ +RUN curl --user-agent "Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Firefox/81.0" --location ${K_JDK_URL}?$(date +%s) \ + --header 'Cache-Control: no-cache, no-store' \ + --header 'Pragma: no-cache' | tar xzv --directory /opt && \ java -version ################################################################## diff --git a/linux/ecosystem/epicmorg/debian/08-jessie/jdk20/Dockerfile.develop b/linux/ecosystem/epicmorg/debian/08-jessie/jdk20/Dockerfile.develop index 2f86363c4..55e334337 100644 --- a/linux/ecosystem/epicmorg/debian/08-jessie/jdk20/Dockerfile.develop +++ b/linux/ecosystem/epicmorg/debian/08-jessie/jdk20/Dockerfile.develop @@ -2,19 +2,20 @@ FROM epicmorg/debian:jessie-develop LABEL maintainer="EpicMorg DevTeam, developer@epicm.org" ARG DEBIAN_FRONTEND=noninteractive +ARG K_JDK_MAJOR_VERSION=jdk-20.0.2 +ARG K_JDK_VERSION=20.0.2 +ARG K_JDK_BUILD_VERSION=9 +ARG K_JDK_URL=https://github.com/adoptium/temurin20-binaries/releases/download/${K_JDK_MAJOR_VERSION}+${K_JDK_BUILD_VERSION}/OpenJDK20U-jdk_x64_linux_hotspot_${K_JDK_VERSION}_${K_JDK_BUILD_VERSION}.tar.gz + +ENV JAVA_HOME=/opt/${K_JDK_MAJOR_VERSION}+${K_JDK_BUILD_VERSION} +ENV PATH=$PATH:${JAVA_HOME}/bin + ################################################################## # installing java20 ################################################################## -RUN wget --no-check-certificate -O - https://packages.adoptium.net/artifactory/api/gpg/key/public | gpg --dearmor > /etc/apt/trusted.gpg.d/adoptium.gpg && \ - echo 'deb https://packages.adoptium.net/artifactory/deb bookworm main' > /etc/apt/sources.list.d/temurin-official.list && \ -# wget --no-check-certificate -O - https://packages.adoptium.net/artifactory/api/gpg/key/public | tee /etc/apt/keyrings/adoptium.asc && \ -# echo 'deb [signed-by=/etc/apt/keyrings/adoptium.asc] https://packages.adoptium.net/artifactory/deb bookworm main' > /etc/apt/sources.list.d/temurin-official.list && \ - apt-get update && \ - apt-get autoremove -y && \ - apt-get install -y --allow-unauthenticated -t bookworm temurin-20-jdk temurin-20-jre && \ - mkdir /usr/lib/jvm/temurin-20-jdk-amd64/jre && \ - ln -s /usr/lib/jvm/temurin-20-jdk-amd64/bin/ /usr/lib/jvm/temurin-20-jdk-amd64/jre/bin && \ - ln -s /usr/lib/jvm/temurin-20-jdk-amd64/lib/ /usr/lib/jvm/temurin-20-jdk-amd64/jre/lib && \ +RUN curl --user-agent "Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Firefox/81.0" --location ${K_JDK_URL}?$(date +%s) \ + --header 'Cache-Control: no-cache, no-store' \ + --header 'Pragma: no-cache' | tar xzv --directory /opt && \ java -version ################################################################## diff --git a/linux/ecosystem/epicmorg/debian/08-jessie/jdk21/Dockerfile b/linux/ecosystem/epicmorg/debian/08-jessie/jdk21/Dockerfile index eb3776c66..abaf76a77 100644 --- a/linux/ecosystem/epicmorg/debian/08-jessie/jdk21/Dockerfile +++ b/linux/ecosystem/epicmorg/debian/08-jessie/jdk21/Dockerfile @@ -2,19 +2,20 @@ FROM epicmorg/debian:jessie LABEL maintainer="EpicMorg DevTeam, developer@epicm.org" ARG DEBIAN_FRONTEND=noninteractive +ARG K_JDK_MAJOR_VERSION=jdk-21.0.3 +ARG K_JDK_VERSION=21.0.3 +ARG K_JDK_BUILD_VERSION=9 +ARG K_JDK_URL=https://github.com/adoptium/temurin21-binaries/releases/download/${K_JDK_MAJOR_VERSION}+${K_JDK_BUILD_VERSION}/OpenJDK21U-jdk_x64_linux_hotspot_${K_JDK_VERSION}_${K_JDK_BUILD_VERSION}.tar.gz + +ENV JAVA_HOME=/opt/${K_JDK_MAJOR_VERSION}+${K_JDK_BUILD_VERSION} +ENV PATH=$PATH:${JAVA_HOME}/bin + ################################################################## # installing java21 ################################################################## -RUN wget --no-check-certificate -O - https://packages.adoptium.net/artifactory/api/gpg/key/public | gpg --dearmor > /etc/apt/trusted.gpg.d/adoptium.gpg && \ - echo 'deb https://packages.adoptium.net/artifactory/deb bookworm main' > /etc/apt/sources.list.d/temurin-official.list && \ -# wget --no-check-certificate -O - https://packages.adoptium.net/artifactory/api/gpg/key/public | tee /etc/apt/keyrings/adoptium.asc && \ -# echo 'deb [signed-by=/etc/apt/keyrings/adoptium.asc] https://packages.adoptium.net/artifactory/deb bookworm main' > /etc/apt/sources.list.d/temurin-official.list && \ - apt-get update && \ - apt-get autoremove -y && \ - apt-get install -y --allow-unauthenticated -t bookworm temurin-21-jdk temurin-21-jre && \ - mkdir /usr/lib/jvm/temurin-21-jdk-amd64/jre && \ - ln -s /usr/lib/jvm/temurin-21-jdk-amd64/bin/ /usr/lib/jvm/temurin-21-jdk-amd64/jre/bin && \ - ln -s /usr/lib/jvm/temurin-21-jdk-amd64/lib/ /usr/lib/jvm/temurin-21-jdk-amd64/jre/lib && \ +RUN curl --user-agent "Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Firefox/81.0" --location ${K_JDK_URL}?$(date +%s) \ + --header 'Cache-Control: no-cache, no-store' \ + --header 'Pragma: no-cache' | tar xzv --directory /opt && \ java -version ################################################################## diff --git a/linux/ecosystem/epicmorg/debian/08-jessie/jdk21/Dockerfile.develop b/linux/ecosystem/epicmorg/debian/08-jessie/jdk21/Dockerfile.develop index e6602d231..45d002baf 100644 --- a/linux/ecosystem/epicmorg/debian/08-jessie/jdk21/Dockerfile.develop +++ b/linux/ecosystem/epicmorg/debian/08-jessie/jdk21/Dockerfile.develop @@ -2,19 +2,20 @@ FROM epicmorg/debian:jessie-develop LABEL maintainer="EpicMorg DevTeam, developer@epicm.org" ARG DEBIAN_FRONTEND=noninteractive +ARG K_JDK_MAJOR_VERSION=jdk-21.0.3 +ARG K_JDK_VERSION=21.0.3 +ARG K_JDK_BUILD_VERSION=9 +ARG K_JDK_URL=https://github.com/adoptium/temurin21-binaries/releases/download/${K_JDK_MAJOR_VERSION}+${K_JDK_BUILD_VERSION}/OpenJDK21U-jdk_x64_linux_hotspot_${K_JDK_VERSION}_${K_JDK_BUILD_VERSION}.tar.gz + +ENV JAVA_HOME=/opt/${K_JDK_MAJOR_VERSION}+${K_JDK_BUILD_VERSION} +ENV PATH=$PATH:${JAVA_HOME}/bin + ################################################################## # installing java21 ################################################################## -RUN wget --no-check-certificate -O - https://packages.adoptium.net/artifactory/api/gpg/key/public | gpg --dearmor > /etc/apt/trusted.gpg.d/adoptium.gpg && \ - echo 'deb https://packages.adoptium.net/artifactory/deb bookworm main' > /etc/apt/sources.list.d/temurin-official.list && \ -# wget --no-check-certificate -O - https://packages.adoptium.net/artifactory/api/gpg/key/public | tee /etc/apt/keyrings/adoptium.asc && \ -# echo 'deb [signed-by=/etc/apt/keyrings/adoptium.asc] https://packages.adoptium.net/artifactory/deb bookworm main' > /etc/apt/sources.list.d/temurin-official.list && \ - apt-get update && \ - apt-get autoremove -y && \ - apt-get install -y --allow-unauthenticated -t bookworm temurin-21-jdk temurin-21-jre && \ - mkdir /usr/lib/jvm/temurin-21-jdk-amd64/jre && \ - ln -s /usr/lib/jvm/temurin-21-jdk-amd64/bin/ /usr/lib/jvm/temurin-21-jdk-amd64/jre/bin && \ - ln -s /usr/lib/jvm/temurin-21-jdk-amd64/lib/ /usr/lib/jvm/temurin-21-jdk-amd64/jre/lib && \ +RUN curl --user-agent "Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Firefox/81.0" --location ${K_JDK_URL}?$(date +%s) \ + --header 'Cache-Control: no-cache, no-store' \ + --header 'Pragma: no-cache' | tar xzv --directory /opt && \ java -version ################################################################## diff --git a/linux/ecosystem/epicmorg/debian/08-jessie/jdk8/Dockerfile b/linux/ecosystem/epicmorg/debian/08-jessie/jdk8/Dockerfile index 313908f19..9b95b892c 100644 --- a/linux/ecosystem/epicmorg/debian/08-jessie/jdk8/Dockerfile +++ b/linux/ecosystem/epicmorg/debian/08-jessie/jdk8/Dockerfile @@ -2,16 +2,20 @@ FROM epicmorg/debian:jessie LABEL maintainer="EpicMorg DevTeam, developer@epicm.org" ARG DEBIAN_FRONTEND=noninteractive +ARG K_JDK_MAJOR_VERSION=jdk8u412 +ARG K_JDK_VERSION=8u412 +ARG K_JDK_BUILD_VERSION=b08 +ARG K_JDK_URL=https://github.com/adoptium/temurin8-binaries/releases/download/${K_JDK_MAJOR_VERSION}-${K_JDK_BUILD_VERSION}/OpenJDK8U-jdk_x64_linux_hotspot_${K_JDK_VERSION}${K_JDK_BUILD_VERSION}.tar.gz + +ENV JAVA_HOME=/opt/${K_JDK_MAJOR_VERSION}-${K_JDK_BUILD_VERSION} +ENV PATH=$PATH:${JAVA_HOME}/bin + ################################################################## # installing java8 ################################################################## -RUN wget --no-check-certificate -O - https://packages.adoptium.net/artifactory/api/gpg/key/public | gpg --dearmor > /etc/apt/trusted.gpg.d/adoptium.gpg && \ - echo 'deb https://packages.adoptium.net/artifactory/deb bookworm main' > /etc/apt/sources.list.d/temurin-official.list && \ -# wget --no-check-certificate -O - https://packages.adoptium.net/artifactory/api/gpg/key/public | tee /etc/apt/keyrings/adoptium.asc && \ -# echo 'deb [signed-by=/etc/apt/keyrings/adoptium.asc] https://packages.adoptium.net/artifactory/deb bookworm main' > /etc/apt/sources.list.d/temurin-official.list && \ - apt-get update && \ - apt-get autoremove -y && \ - apt-get install -y --allow-unauthenticated -t bookworm temurin-8-jdk temurin-8-jre && \ +RUN curl --user-agent "Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Firefox/81.0" --location ${K_JDK_URL}?$(date +%s) \ + --header 'Cache-Control: no-cache, no-store' \ + --header 'Pragma: no-cache' | tar xzv --directory /opt && \ java -version ################################################################## diff --git a/linux/ecosystem/epicmorg/debian/08-jessie/jdk8/Dockerfile.develop b/linux/ecosystem/epicmorg/debian/08-jessie/jdk8/Dockerfile.develop index 9f118c287..da7dbb348 100644 --- a/linux/ecosystem/epicmorg/debian/08-jessie/jdk8/Dockerfile.develop +++ b/linux/ecosystem/epicmorg/debian/08-jessie/jdk8/Dockerfile.develop @@ -2,16 +2,20 @@ FROM epicmorg/debian:jessie-develop LABEL maintainer="EpicMorg DevTeam, developer@epicm.org" ARG DEBIAN_FRONTEND=noninteractive +ARG K_JDK_MAJOR_VERSION=jdk8u412 +ARG K_JDK_VERSION=8u412 +ARG K_JDK_BUILD_VERSION=b08 +ARG K_JDK_URL=https://github.com/adoptium/temurin8-binaries/releases/download/${K_JDK_MAJOR_VERSION}-${K_JDK_BUILD_VERSION}/OpenJDK8U-jdk_x64_linux_hotspot_${K_JDK_VERSION}${K_JDK_BUILD_VERSION}.tar.gz + +ENV JAVA_HOME=/opt/${K_JDK_MAJOR_VERSION}-${K_JDK_BUILD_VERSION} +ENV PATH=$PATH:${JAVA_HOME}/bin + ################################################################## # installing java8 ################################################################## -RUN wget --no-check-certificate -O - https://packages.adoptium.net/artifactory/api/gpg/key/public | gpg --dearmor > /etc/apt/trusted.gpg.d/adoptium.gpg && \ - echo 'deb https://packages.adoptium.net/artifactory/deb bookworm main' > /etc/apt/sources.list.d/temurin-official.list && \ -# wget --no-check-certificate -O - https://packages.adoptium.net/artifactory/api/gpg/key/public | tee /etc/apt/keyrings/adoptium.asc && \ -# echo 'deb [signed-by=/etc/apt/keyrings/adoptium.asc] https://packages.adoptium.net/artifactory/deb bookworm main' > /etc/apt/sources.list.d/temurin-official.list && \ - apt-get update && \ - apt-get autoremove -y && \ - apt-get install -y --allow-unauthenticated -t bookworm temurin-8-jdk temurin-8-jre && \ +RUN curl --user-agent "Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Firefox/81.0" --location ${K_JDK_URL}?$(date +%s) \ + --header 'Cache-Control: no-cache, no-store' \ + --header 'Pragma: no-cache' | tar xzv --directory /opt && \ java -version ################################################################## diff --git a/linux/ecosystem/epicmorg/debian/09-stretch/jdk11/Dockerfile b/linux/ecosystem/epicmorg/debian/09-stretch/jdk11/Dockerfile index 0c4b70c4a..787b16e85 100644 --- a/linux/ecosystem/epicmorg/debian/09-stretch/jdk11/Dockerfile +++ b/linux/ecosystem/epicmorg/debian/09-stretch/jdk11/Dockerfile @@ -2,17 +2,20 @@ FROM epicmorg/debian:stretch LABEL maintainer="EpicMorg DevTeam, developer@epicm.org" ARG DEBIAN_FRONTEND=noninteractive +ARG K_JDK_MAJOR_VERSION=jdk-11.0.23 +ARG K_JDK_VERSION=11.0.23 +ARG K_JDK_BUILD_VERSION=9 +ARG K_JDK_URL=https://github.com/adoptium/temurin11-binaries/releases/download/${K_JDK_MAJOR_VERSION}+${K_JDK_BUILD_VERSION}/OpenJDK11U-jdk_x64_linux_hotspot_${K_JDK_VERSION}_${K_JDK_BUILD_VERSION}.tar.gz + +ENV JAVA_HOME=/opt/${K_JDK_MAJOR_VERSION}+${K_JDK_BUILD_VERSION} +ENV PATH=$PATH:${JAVA_HOME}/bin + ################################################################## # installing java11 ################################################################## -RUN wget -qO - https://packages.adoptium.net/artifactory/api/gpg/key/public | apt-key add - && \ - echo 'deb https://packages.adoptium.net/artifactory/deb stretch main' > /etc/apt/sources.list.d/temurin-official.list && \ - apt-get update && \ - apt-get autoremove -y && \ - apt-get install -y --allow-unauthenticated temurin-11-jdk && \ - mkdir /usr/lib/jvm/temurin-11-jdk-amd64/jre && \ - ln -s /usr/lib/jvm/temurin-11-jdk-amd64/bin/ /usr/lib/jvm/temurin-11-jdk-amd64/jre/bin && \ - ln -s /usr/lib/jvm/temurin-11-jdk-amd64/lib/ /usr/lib/jvm/temurin-11-jdk-amd64/jre/lib && \ +RUN curl --user-agent "Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Firefox/81.0" --location ${K_JDK_URL}?$(date +%s) \ + --header 'Cache-Control: no-cache, no-store' \ + --header 'Pragma: no-cache' | tar xzv --directory /opt && \ java -version ################################################################## diff --git a/linux/ecosystem/epicmorg/debian/09-stretch/jdk11/Dockerfile.develop b/linux/ecosystem/epicmorg/debian/09-stretch/jdk11/Dockerfile.develop index f4f11e1e0..f4b991d70 100644 --- a/linux/ecosystem/epicmorg/debian/09-stretch/jdk11/Dockerfile.develop +++ b/linux/ecosystem/epicmorg/debian/09-stretch/jdk11/Dockerfile.develop @@ -2,17 +2,20 @@ FROM epicmorg/debian:stretch-develop LABEL maintainer="EpicMorg DevTeam, developer@epicm.org" ARG DEBIAN_FRONTEND=noninteractive +ARG K_JDK_MAJOR_VERSION=jdk-11.0.23 +ARG K_JDK_VERSION=11.0.23 +ARG K_JDK_BUILD_VERSION=9 +ARG K_JDK_URL=https://github.com/adoptium/temurin11-binaries/releases/download/${K_JDK_MAJOR_VERSION}+${K_JDK_BUILD_VERSION}/OpenJDK11U-jdk_x64_linux_hotspot_${K_JDK_VERSION}_${K_JDK_BUILD_VERSION}.tar.gz + +ENV JAVA_HOME=/opt/${K_JDK_MAJOR_VERSION}+${K_JDK_BUILD_VERSION} +ENV PATH=$PATH:${JAVA_HOME}/bin + ################################################################## # installing java11 ################################################################## -RUN wget -qO - https://packages.adoptium.net/artifactory/api/gpg/key/public | apt-key add - && \ - echo 'deb https://packages.adoptium.net/artifactory/deb stretch main' > /etc/apt/sources.list.d/temurin-official.list && \ - apt-get update && \ - apt-get autoremove -y && \ - apt-get install -y --allow-unauthenticated temurin-11-jdk && \ - mkdir /usr/lib/jvm/temurin-11-jdk-amd64/jre && \ - ln -s /usr/lib/jvm/temurin-11-jdk-amd64/bin/ /usr/lib/jvm/temurin-11-jdk-amd64/jre/bin && \ - ln -s /usr/lib/jvm/temurin-11-jdk-amd64/lib/ /usr/lib/jvm/temurin-11-jdk-amd64/jre/lib && \ +RUN curl --user-agent "Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Firefox/81.0" --location ${K_JDK_URL}?$(date +%s) \ + --header 'Cache-Control: no-cache, no-store' \ + --header 'Pragma: no-cache' | tar xzv --directory /opt && \ java -version ################################################################## diff --git a/linux/ecosystem/epicmorg/debian/09-stretch/jdk17/Dockerfile b/linux/ecosystem/epicmorg/debian/09-stretch/jdk17/Dockerfile index aad49c491..a5af33d25 100644 --- a/linux/ecosystem/epicmorg/debian/09-stretch/jdk17/Dockerfile +++ b/linux/ecosystem/epicmorg/debian/09-stretch/jdk17/Dockerfile @@ -2,21 +2,22 @@ FROM epicmorg/debian:stretch LABEL maintainer="EpicMorg DevTeam, developer@epicm.org" ARG DEBIAN_FRONTEND=noninteractive +ARG K_JDK_MAJOR_VERSION=jdk-17.0.11 +ARG K_JDK_VERSION=17.0.11 +ARG K_JDK_BUILD_VERSION=9 +ARG K_JDK_URL=https://github.com/adoptium/temurin17-binaries/releases/download/${K_JDK_MAJOR_VERSION}+${K_JDK_BUILD_VERSION}/OpenJDK17U-jdk_x64_linux_hotspot_${K_JDK_VERSION}_${K_JDK_BUILD_VERSION}.tar.gz + +ENV JAVA_HOME=/opt/${K_JDK_MAJOR_VERSION}+${K_JDK_BUILD_VERSION} +ENV PATH=$PATH:${JAVA_HOME}/bin + ################################################################## # installing java17 ################################################################## -RUN wget -qO - https://packages.adoptium.net/artifactory/api/gpg/key/public | apt-key add - && \ - echo 'deb https://packages.adoptium.net/artifactory/deb stretch main' > /etc/apt/sources.list.d/temurin-official.list && \ - apt clean && apt autoclean && \ - apt-get update && \ - apt-get autoremove -y && \ - apt-get install -y -o 'Acquire::Retries=3' --allow-unauthenticated temurin-17-jdk && \ - mkdir /usr/lib/jvm/temurin-17-jdk-amd64/jre && \ - ln -s /usr/lib/jvm/temurin-17-jdk-amd64/bin/ /usr/lib/jvm/temurin-17-jdk-amd64/jre/bin && \ - ln -s /usr/lib/jvm/temurin-17-jdk-amd64/lib/ /usr/lib/jvm/temurin-17-jdk-amd64/jre/lib && \ +RUN curl --user-agent "Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Firefox/81.0" --location ${K_JDK_URL}?$(date +%s) \ + --header 'Cache-Control: no-cache, no-store' \ + --header 'Pragma: no-cache' | tar xzv --directory /opt && \ java -version - ################################################################## # Additional settings ################################################################## diff --git a/linux/ecosystem/epicmorg/debian/09-stretch/jdk17/Dockerfile.develop b/linux/ecosystem/epicmorg/debian/09-stretch/jdk17/Dockerfile.develop index 18b6a5765..ee2aef4d0 100644 --- a/linux/ecosystem/epicmorg/debian/09-stretch/jdk17/Dockerfile.develop +++ b/linux/ecosystem/epicmorg/debian/09-stretch/jdk17/Dockerfile.develop @@ -2,17 +2,20 @@ FROM epicmorg/debian:stretch-develop LABEL maintainer="EpicMorg DevTeam, developer@epicm.org" ARG DEBIAN_FRONTEND=noninteractive +ARG K_JDK_MAJOR_VERSION=jdk-17.0.11 +ARG K_JDK_VERSION=17.0.11 +ARG K_JDK_BUILD_VERSION=9 +ARG K_JDK_URL=https://github.com/adoptium/temurin17-binaries/releases/download/${K_JDK_MAJOR_VERSION}+${K_JDK_BUILD_VERSION}/OpenJDK17U-jdk_x64_linux_hotspot_${K_JDK_VERSION}_${K_JDK_BUILD_VERSION}.tar.gz + +ENV JAVA_HOME=/opt/${K_JDK_MAJOR_VERSION}+${K_JDK_BUILD_VERSION} +ENV PATH=$PATH:${JAVA_HOME}/bin + ################################################################## # installing java17 ################################################################## -RUN wget -qO - https://packages.adoptium.net/artifactory/api/gpg/key/public | apt-key add - && \ - echo 'deb https://packages.adoptium.net/artifactory/deb stretch main' > /etc/apt/sources.list.d/temurin-official.list && \ - apt-get update && \ - apt-get autoremove -y && \ - apt-get install -y -o 'Acquire::Retries=3' --allow-unauthenticated temurin-17-jdk && \ - mkdir /usr/lib/jvm/temurin-17-jdk-amd64/jre && \ - ln -s /usr/lib/jvm/temurin-17-jdk-amd64/bin/ /usr/lib/jvm/temurin-17-jdk-amd64/jre/bin && \ - ln -s /usr/lib/jvm/temurin-17-jdk-amd64/lib/ /usr/lib/jvm/temurin-17-jdk-amd64/jre/lib && \ +RUN curl --user-agent "Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Firefox/81.0" --location ${K_JDK_URL}?$(date +%s) \ + --header 'Cache-Control: no-cache, no-store' \ + --header 'Pragma: no-cache' | tar xzv --directory /opt && \ java -version ################################################################## diff --git a/linux/ecosystem/epicmorg/debian/09-stretch/jdk8/Dockerfile b/linux/ecosystem/epicmorg/debian/09-stretch/jdk8/Dockerfile index c8856c1c3..1ad6d7361 100644 --- a/linux/ecosystem/epicmorg/debian/09-stretch/jdk8/Dockerfile +++ b/linux/ecosystem/epicmorg/debian/09-stretch/jdk8/Dockerfile @@ -2,16 +2,23 @@ FROM epicmorg/debian:stretch LABEL maintainer="EpicMorg DevTeam, developer@epicm.org" ARG DEBIAN_FRONTEND=noninteractive +ARG K_JDK_MAJOR_VERSION=jdk8u412 +ARG K_JDK_VERSION=8u412 +ARG K_JDK_BUILD_VERSION=b08 +ARG K_JDK_URL=https://github.com/adoptium/temurin8-binaries/releases/download/${K_JDK_MAJOR_VERSION}-${K_JDK_BUILD_VERSION}/OpenJDK8U-jdk_x64_linux_hotspot_${K_JDK_VERSION}${K_JDK_BUILD_VERSION}.tar.gz + +ENV JAVA_HOME=/opt/${K_JDK_MAJOR_VERSION}-${K_JDK_BUILD_VERSION} +ENV PATH=$PATH:${JAVA_HOME}/bin + ################################################################## # installing java8 ################################################################## -RUN wget -qO - https://packages.adoptium.net/artifactory/api/gpg/key/public | apt-key add - && \ - echo 'deb https://packages.adoptium.net/artifactory/deb stretch main' > /etc/apt/sources.list.d/temurin-official.list && \ - apt-get update && \ - apt-get autoremove -y && \ - apt-get install -y --allow-unauthenticated temurin-8-jdk && \ +RUN curl --user-agent "Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Firefox/81.0" --location ${K_JDK_URL}?$(date +%s) \ + --header 'Cache-Control: no-cache, no-store' \ + --header 'Pragma: no-cache' | tar xzv --directory /opt && \ java -version + ################################################################## # Additional settings ################################################################## diff --git a/linux/ecosystem/epicmorg/debian/09-stretch/jdk8/Dockerfile.develop b/linux/ecosystem/epicmorg/debian/09-stretch/jdk8/Dockerfile.develop index c5691d976..f29ba09ad 100644 --- a/linux/ecosystem/epicmorg/debian/09-stretch/jdk8/Dockerfile.develop +++ b/linux/ecosystem/epicmorg/debian/09-stretch/jdk8/Dockerfile.develop @@ -2,14 +2,20 @@ FROM epicmorg/debian:stretch-develop LABEL maintainer="EpicMorg DevTeam, developer@epicm.org" ARG DEBIAN_FRONTEND=noninteractive +ARG K_JDK_MAJOR_VERSION=jdk8u412 +ARG K_JDK_VERSION=8u412 +ARG K_JDK_BUILD_VERSION=b08 +ARG K_JDK_URL=https://github.com/adoptium/temurin8-binaries/releases/download/${K_JDK_MAJOR_VERSION}-${K_JDK_BUILD_VERSION}/OpenJDK8U-jdk_x64_linux_hotspot_${K_JDK_VERSION}${K_JDK_BUILD_VERSION}.tar.gz + +ENV JAVA_HOME=/opt/${K_JDK_MAJOR_VERSION}-${K_JDK_BUILD_VERSION} +ENV PATH=$PATH:${JAVA_HOME}/bin + ################################################################## # installing java8 ################################################################## -RUN wget -qO - https://packages.adoptium.net/artifactory/api/gpg/key/public | apt-key add - && \ - echo 'deb https://packages.adoptium.net/artifactory/deb stretch main' > /etc/apt/sources.list.d/temurin-official.list && \ - apt-get update && \ - apt-get autoremove -y && \ - apt-get install -y --allow-unauthenticated temurin-8-jdk && \ +RUN curl --user-agent "Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Firefox/81.0" --location ${K_JDK_URL}?$(date +%s) \ + --header 'Cache-Control: no-cache, no-store' \ + --header 'Pragma: no-cache' | tar xzv --directory /opt && \ java -version ################################################################## diff --git a/linux/ecosystem/epicmorg/debian/10-buster/jdk11/Dockerfile b/linux/ecosystem/epicmorg/debian/10-buster/jdk11/Dockerfile index 69ed90b60..3cc0efe95 100644 --- a/linux/ecosystem/epicmorg/debian/10-buster/jdk11/Dockerfile +++ b/linux/ecosystem/epicmorg/debian/10-buster/jdk11/Dockerfile @@ -2,18 +2,22 @@ FROM epicmorg/debian:buster LABEL maintainer="EpicMorg DevTeam, developer@epicm.org" ARG DEBIAN_FRONTEND=noninteractive +ARG K_JDK_MAJOR_VERSION=jdk-11.0.23 +ARG K_JDK_VERSION=11.0.23 +ARG K_JDK_BUILD_VERSION=9 +ARG K_JDK_URL=https://github.com/adoptium/temurin11-binaries/releases/download/${K_JDK_MAJOR_VERSION}+${K_JDK_BUILD_VERSION}/OpenJDK11U-jdk_x64_linux_hotspot_${K_JDK_VERSION}_${K_JDK_BUILD_VERSION}.tar.gz + +ENV JAVA_HOME=/opt/${K_JDK_MAJOR_VERSION}+${K_JDK_BUILD_VERSION} +ENV PATH=$PATH:${JAVA_HOME}/bin + ################################################################## # installing java11 ################################################################## -RUN wget -qO - https://packages.adoptium.net/artifactory/api/gpg/key/public | apt-key add - && \ - echo 'deb https://packages.adoptium.net/artifactory/deb buster main' > /etc/apt/sources.list.d/temurin-official.list && \ - apt-get update && \ - apt-get autoremove -y && \ - apt-get install -y --allow-unauthenticated temurin-11-jdk temurin-11-jre && \ - mkdir /usr/lib/jvm/temurin-11-jdk-amd64/jre && \ - ln -s /usr/lib/jvm/temurin-11-jdk-amd64/bin/ /usr/lib/jvm/temurin-11-jdk-amd64/jre/bin && \ - ln -s /usr/lib/jvm/temurin-11-jdk-amd64/lib/ /usr/lib/jvm/temurin-11-jdk-amd64/jre/lib && \ +RUN curl --user-agent "Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Firefox/81.0" --location ${K_JDK_URL}?$(date +%s) \ + --header 'Cache-Control: no-cache, no-store' \ + --header 'Pragma: no-cache' | tar xzv --directory /opt && \ java -version + ################################################################## # Additional settings ################################################################## diff --git a/linux/ecosystem/epicmorg/debian/10-buster/jdk11/Dockerfile.develop b/linux/ecosystem/epicmorg/debian/10-buster/jdk11/Dockerfile.develop index 94c51941b..94970e412 100644 --- a/linux/ecosystem/epicmorg/debian/10-buster/jdk11/Dockerfile.develop +++ b/linux/ecosystem/epicmorg/debian/10-buster/jdk11/Dockerfile.develop @@ -2,18 +2,22 @@ FROM epicmorg/debian:buster-develop LABEL maintainer="EpicMorg DevTeam, developer@epicm.org" ARG DEBIAN_FRONTEND=noninteractive +ARG K_JDK_MAJOR_VERSION=jdk-11.0.23 +ARG K_JDK_VERSION=11.0.23 +ARG K_JDK_BUILD_VERSION=9 +ARG K_JDK_URL=https://github.com/adoptium/temurin11-binaries/releases/download/${K_JDK_MAJOR_VERSION}+${K_JDK_BUILD_VERSION}/OpenJDK11U-jdk_x64_linux_hotspot_${K_JDK_VERSION}_${K_JDK_BUILD_VERSION}.tar.gz + +ENV JAVA_HOME=/opt/${K_JDK_MAJOR_VERSION}+${K_JDK_BUILD_VERSION} +ENV PATH=$PATH:${JAVA_HOME}/bin + ################################################################## # installing java11 ################################################################## -RUN wget -qO - https://packages.adoptium.net/artifactory/api/gpg/key/public | apt-key add - && \ - echo 'deb https://packages.adoptium.net/artifactory/deb buster main' > /etc/apt/sources.list.d/temurin-official.list && \ - apt-get update && \ - apt-get autoremove -y && \ - apt-get install -y --allow-unauthenticated temurin-11-jdk temurin-11-jre && \ - mkdir /usr/lib/jvm/temurin-11-jdk-amd64/jre && \ - ln -s /usr/lib/jvm/temurin-11-jdk-amd64/bin/ /usr/lib/jvm/temurin-11-jdk-amd64/jre/bin && \ - ln -s /usr/lib/jvm/temurin-11-jdk-amd64/lib/ /usr/lib/jvm/temurin-11-jdk-amd64/jre/lib && \ +RUN curl --user-agent "Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Firefox/81.0" --location ${K_JDK_URL}?$(date +%s) \ + --header 'Cache-Control: no-cache, no-store' \ + --header 'Pragma: no-cache' | tar xzv --directory /opt && \ java -version + ################################################################## # Additional settings ################################################################## diff --git a/linux/ecosystem/epicmorg/debian/10-buster/jdk17/Dockerfile b/linux/ecosystem/epicmorg/debian/10-buster/jdk17/Dockerfile index 15ef715eb..82346ba93 100644 --- a/linux/ecosystem/epicmorg/debian/10-buster/jdk17/Dockerfile +++ b/linux/ecosystem/epicmorg/debian/10-buster/jdk17/Dockerfile @@ -2,18 +2,22 @@ FROM epicmorg/debian:buster LABEL maintainer="EpicMorg DevTeam, developer@epicm.org" ARG DEBIAN_FRONTEND=noninteractive +ARG K_JDK_MAJOR_VERSION=jdk-17.0.11 +ARG K_JDK_VERSION=17.0.11 +ARG K_JDK_BUILD_VERSION=9 +ARG K_JDK_URL=https://github.com/adoptium/temurin17-binaries/releases/download/${K_JDK_MAJOR_VERSION}+${K_JDK_BUILD_VERSION}/OpenJDK17U-jdk_x64_linux_hotspot_${K_JDK_VERSION}_${K_JDK_BUILD_VERSION}.tar.gz + +ENV JAVA_HOME=/opt/${K_JDK_MAJOR_VERSION}+${K_JDK_BUILD_VERSION} +ENV PATH=$PATH:${JAVA_HOME}/bin + ################################################################## # installing java17 ################################################################## -RUN wget -qO - https://packages.adoptium.net/artifactory/api/gpg/key/public | apt-key add - && \ - echo 'deb https://packages.adoptium.net/artifactory/deb buster main' > /etc/apt/sources.list.d/temurin-official.list && \ - apt-get update && \ - apt-get autoremove -y && \ - apt-get install -y --allow-unauthenticated temurin-17-jdk temurin-17-jre && \ - mkdir /usr/lib/jvm/temurin-17-jdk-amd64/jre && \ - ln -s /usr/lib/jvm/temurin-17-jdk-amd64/bin/ /usr/lib/jvm/temurin-17-jdk-amd64/jre/bin && \ - ln -s /usr/lib/jvm/temurin-17-jdk-amd64/lib/ /usr/lib/jvm/temurin-17-jdk-amd64/jre/lib && \ +RUN curl --user-agent "Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Firefox/81.0" --location ${K_JDK_URL}?$(date +%s) \ + --header 'Cache-Control: no-cache, no-store' \ + --header 'Pragma: no-cache' | tar xzv --directory /opt && \ java -version + ################################################################## # Additional settings ################################################################## diff --git a/linux/ecosystem/epicmorg/debian/10-buster/jdk17/Dockerfile.develop b/linux/ecosystem/epicmorg/debian/10-buster/jdk17/Dockerfile.develop index e2d9667d6..c9da29176 100644 --- a/linux/ecosystem/epicmorg/debian/10-buster/jdk17/Dockerfile.develop +++ b/linux/ecosystem/epicmorg/debian/10-buster/jdk17/Dockerfile.develop @@ -2,18 +2,22 @@ FROM epicmorg/debian:buster-develop LABEL maintainer="EpicMorg DevTeam, developer@epicm.org" ARG DEBIAN_FRONTEND=noninteractive +ARG K_JDK_MAJOR_VERSION=jdk-17.0.11 +ARG K_JDK_VERSION=17.0.11 +ARG K_JDK_BUILD_VERSION=9 +ARG K_JDK_URL=https://github.com/adoptium/temurin17-binaries/releases/download/${K_JDK_MAJOR_VERSION}+${K_JDK_BUILD_VERSION}/OpenJDK17U-jdk_x64_linux_hotspot_${K_JDK_VERSION}_${K_JDK_BUILD_VERSION}.tar.gz + +ENV JAVA_HOME=/opt/${K_JDK_MAJOR_VERSION}+${K_JDK_BUILD_VERSION} +ENV PATH=$PATH:${JAVA_HOME}/bin + ################################################################## # installing java17 ################################################################## -RUN wget -qO - https://packages.adoptium.net/artifactory/api/gpg/key/public | apt-key add - && \ - echo 'deb https://packages.adoptium.net/artifactory/deb buster main' > /etc/apt/sources.list.d/temurin-official.list && \ - apt-get update && \ - apt-get autoremove -y && \ - apt-get install -y --allow-unauthenticated temurin-17-jdk temurin-17-jre && \ - mkdir /usr/lib/jvm/temurin-17-jdk-amd64/jre && \ - ln -s /usr/lib/jvm/temurin-17-jdk-amd64/bin/ /usr/lib/jvm/temurin-17-jdk-amd64/jre/bin && \ - ln -s /usr/lib/jvm/temurin-17-jdk-amd64/lib/ /usr/lib/jvm/temurin-17-jdk-amd64/jre/lib && \ +RUN curl --user-agent "Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Firefox/81.0" --location ${K_JDK_URL}?$(date +%s) \ + --header 'Cache-Control: no-cache, no-store' \ + --header 'Pragma: no-cache' | tar xzv --directory /opt && \ java -version + ################################################################## # Additional settings ################################################################## diff --git a/linux/ecosystem/epicmorg/debian/10-buster/jdk18/Dockerfile b/linux/ecosystem/epicmorg/debian/10-buster/jdk18/Dockerfile index 71fd8db37..48cf4ee5f 100644 --- a/linux/ecosystem/epicmorg/debian/10-buster/jdk18/Dockerfile +++ b/linux/ecosystem/epicmorg/debian/10-buster/jdk18/Dockerfile @@ -2,18 +2,22 @@ FROM epicmorg/debian:buster LABEL maintainer="EpicMorg DevTeam, developer@epicm.org" ARG DEBIAN_FRONTEND=noninteractive +ARG K_JDK_MAJOR_VERSION=jdk-18.0.2.1 +ARG K_JDK_VERSION=18.0.2.1 +ARG K_JDK_BUILD_VERSION=1 +ARG K_JDK_URL=https://github.com/adoptium/temurin18-binaries/releases/download/${K_JDK_MAJOR_VERSION}+${K_JDK_BUILD_VERSION}/OpenJDK18U-jdk_x64_linux_hotspot_${K_JDK_VERSION}_${K_JDK_BUILD_VERSION}.tar.gz + +ENV JAVA_HOME=/opt/${K_JDK_MAJOR_VERSION}+${K_JDK_BUILD_VERSION} +ENV PATH=$PATH:${JAVA_HOME}/bin + ################################################################## # installing java18 ################################################################## -RUN wget -qO - https://packages.adoptium.net/artifactory/api/gpg/key/public | apt-key add - && \ - echo 'deb https://packages.adoptium.net/artifactory/deb buster main' > /etc/apt/sources.list.d/temurin-official.list && \ - apt-get update && \ - apt-get autoremove -y && \ - apt-get install -y --allow-unauthenticated temurin-18-jdk && \ - mkdir /usr/lib/jvm/temurin-18-jdk-amd64/jre && \ - ln -s /usr/lib/jvm/temurin-18-jdk-amd64/bin/ /usr/lib/jvm/temurin-18-jdk-amd64/jre/bin && \ - ln -s /usr/lib/jvm/temurin-18-jdk-amd64/lib/ /usr/lib/jvm/temurin-18-jdk-amd64/jre/lib && \ +RUN curl --user-agent "Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Firefox/81.0" --location ${K_JDK_URL}?$(date +%s) \ + --header 'Cache-Control: no-cache, no-store' \ + --header 'Pragma: no-cache' | tar xzv --directory /opt && \ java -version + ################################################################## # Additional settings ################################################################## diff --git a/linux/ecosystem/epicmorg/debian/10-buster/jdk18/Dockerfile.develop b/linux/ecosystem/epicmorg/debian/10-buster/jdk18/Dockerfile.develop index fc2e4222e..7078e4f13 100644 --- a/linux/ecosystem/epicmorg/debian/10-buster/jdk18/Dockerfile.develop +++ b/linux/ecosystem/epicmorg/debian/10-buster/jdk18/Dockerfile.develop @@ -2,18 +2,22 @@ FROM epicmorg/debian:buster-develop LABEL maintainer="EpicMorg DevTeam, developer@epicm.org" ARG DEBIAN_FRONTEND=noninteractive +ARG K_JDK_MAJOR_VERSION=jdk-18.0.2.1 +ARG K_JDK_VERSION=18.0.2.1 +ARG K_JDK_BUILD_VERSION=1 +ARG K_JDK_URL=https://github.com/adoptium/temurin18-binaries/releases/download/${K_JDK_MAJOR_VERSION}+${K_JDK_BUILD_VERSION}/OpenJDK18U-jdk_x64_linux_hotspot_${K_JDK_VERSION}_${K_JDK_BUILD_VERSION}.tar.gz + +ENV JAVA_HOME=/opt/${K_JDK_MAJOR_VERSION}+${K_JDK_BUILD_VERSION} +ENV PATH=$PATH:${JAVA_HOME}/bin + ################################################################## # installing java18 ################################################################## -RUN wget -qO - https://packages.adoptium.net/artifactory/api/gpg/key/public | apt-key add - && \ - echo 'deb https://packages.adoptium.net/artifactory/deb buster main' > /etc/apt/sources.list.d/temurin-official.list && \ - apt-get update && \ - apt-get autoremove -y && \ - apt-get install -y --allow-unauthenticated temurin-18-jdk && \ - mkdir /usr/lib/jvm/temurin-18-jdk-amd64/jre && \ - ln -s /usr/lib/jvm/temurin-18-jdk-amd64/bin/ /usr/lib/jvm/temurin-18-jdk-amd64/jre/bin && \ - ln -s /usr/lib/jvm/temurin-18-jdk-amd64/lib/ /usr/lib/jvm/temurin-18-jdk-amd64/jre/lib && \ +RUN curl --user-agent "Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Firefox/81.0" --location ${K_JDK_URL}?$(date +%s) \ + --header 'Cache-Control: no-cache, no-store' \ + --header 'Pragma: no-cache' | tar xzv --directory /opt && \ java -version + ################################################################## # Additional settings ################################################################## diff --git a/linux/ecosystem/epicmorg/debian/10-buster/jdk19/Dockerfile b/linux/ecosystem/epicmorg/debian/10-buster/jdk19/Dockerfile index aa523e65a..6e064dd4e 100644 --- a/linux/ecosystem/epicmorg/debian/10-buster/jdk19/Dockerfile +++ b/linux/ecosystem/epicmorg/debian/10-buster/jdk19/Dockerfile @@ -2,18 +2,22 @@ FROM epicmorg/debian:buster LABEL maintainer="EpicMorg DevTeam, developer@epicm.org" ARG DEBIAN_FRONTEND=noninteractive +ARG K_JDK_MAJOR_VERSION=jdk-19.0.2 +ARG K_JDK_VERSION=19.0.2 +ARG K_JDK_BUILD_VERSION=7 +ARG K_JDK_URL=https://github.com/adoptium/temurin19-binaries/releases/download/${K_JDK_MAJOR_VERSION}+${K_JDK_BUILD_VERSION}/OpenJDK19U-jdk_x64_linux_hotspot_${K_JDK_VERSION}_${K_JDK_BUILD_VERSION}.tar.gz + +ENV JAVA_HOME=/opt/${K_JDK_MAJOR_VERSION}+${K_JDK_BUILD_VERSION} +ENV PATH=$PATH:${JAVA_HOME}/bin + ################################################################## # installing java19 ################################################################## -RUN wget -qO - https://packages.adoptium.net/artifactory/api/gpg/key/public | apt-key add - && \ - echo 'deb https://packages.adoptium.net/artifactory/deb buster main' > /etc/apt/sources.list.d/temurin-official.list && \ - apt-get update && \ - apt-get autoremove -y && \ - apt-get install -y --allow-unauthenticated temurin-19-jdk temurin-19-jre && \ - mkdir /usr/lib/jvm/temurin-19-jdk-amd64/jre && \ - ln -s /usr/lib/jvm/temurin-19-jdk-amd64/bin/ /usr/lib/jvm/temurin-19-jdk-amd64/jre/bin && \ - ln -s /usr/lib/jvm/temurin-19-jdk-amd64/lib/ /usr/lib/jvm/temurin-19-jdk-amd64/jre/lib && \ +RUN curl --user-agent "Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Firefox/81.0" --location ${K_JDK_URL}?$(date +%s) \ + --header 'Cache-Control: no-cache, no-store' \ + --header 'Pragma: no-cache' | tar xzv --directory /opt && \ java -version + ################################################################## # Additional settings ################################################################## diff --git a/linux/ecosystem/epicmorg/debian/10-buster/jdk19/Dockerfile.develop b/linux/ecosystem/epicmorg/debian/10-buster/jdk19/Dockerfile.develop index b626dab39..093ca8db1 100644 --- a/linux/ecosystem/epicmorg/debian/10-buster/jdk19/Dockerfile.develop +++ b/linux/ecosystem/epicmorg/debian/10-buster/jdk19/Dockerfile.develop @@ -2,18 +2,22 @@ FROM epicmorg/debian:buster-develop LABEL maintainer="EpicMorg DevTeam, developer@epicm.org" ARG DEBIAN_FRONTEND=noninteractive +ARG K_JDK_MAJOR_VERSION=jdk-19.0.2 +ARG K_JDK_VERSION=19.0.2 +ARG K_JDK_BUILD_VERSION=7 +ARG K_JDK_URL=https://github.com/adoptium/temurin19-binaries/releases/download/${K_JDK_MAJOR_VERSION}+${K_JDK_BUILD_VERSION}/OpenJDK19U-jdk_x64_linux_hotspot_${K_JDK_VERSION}_${K_JDK_BUILD_VERSION}.tar.gz + +ENV JAVA_HOME=/opt/${K_JDK_MAJOR_VERSION}+${K_JDK_BUILD_VERSION} +ENV PATH=$PATH:${JAVA_HOME}/bin + ################################################################## -# installing java18 +# installing java19 ################################################################## -RUN wget -qO - https://packages.adoptium.net/artifactory/api/gpg/key/public | apt-key add - && \ - echo 'deb https://packages.adoptium.net/artifactory/deb buster main' > /etc/apt/sources.list.d/temurin-official.list && \ - apt-get update && \ - apt-get autoremove -y && \ - apt-get install -y --allow-unauthenticated temurin-19-jdk temurin-19-jre && \ - mkdir /usr/lib/jvm/temurin-19-jdk-amd64/jre && \ - ln -s /usr/lib/jvm/temurin-19-jdk-amd64/bin/ /usr/lib/jvm/temurin-19-jdk-amd64/jre/bin && \ - ln -s /usr/lib/jvm/temurin-19-jdk-amd64/lib/ /usr/lib/jvm/temurin-19-jdk-amd64/jre/lib && \ +RUN curl --user-agent "Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Firefox/81.0" --location ${K_JDK_URL}?$(date +%s) \ + --header 'Cache-Control: no-cache, no-store' \ + --header 'Pragma: no-cache' | tar xzv --directory /opt && \ java -version + ################################################################## # Additional settings ################################################################## diff --git a/linux/ecosystem/epicmorg/debian/10-buster/jdk20/Dockerfile b/linux/ecosystem/epicmorg/debian/10-buster/jdk20/Dockerfile index 0c7c341d1..3cf358c20 100644 --- a/linux/ecosystem/epicmorg/debian/10-buster/jdk20/Dockerfile +++ b/linux/ecosystem/epicmorg/debian/10-buster/jdk20/Dockerfile @@ -2,17 +2,20 @@ FROM epicmorg/debian:buster LABEL maintainer="EpicMorg DevTeam, developer@epicm.org" ARG DEBIAN_FRONTEND=noninteractive +ARG K_JDK_MAJOR_VERSION=jdk-20.0.2 +ARG K_JDK_VERSION=20.0.2 +ARG K_JDK_BUILD_VERSION=9 +ARG K_JDK_URL=https://github.com/adoptium/temurin20-binaries/releases/download/${K_JDK_MAJOR_VERSION}+${K_JDK_BUILD_VERSION}/OpenJDK20U-jdk_x64_linux_hotspot_${K_JDK_VERSION}_${K_JDK_BUILD_VERSION}.tar.gz + +ENV JAVA_HOME=/opt/${K_JDK_MAJOR_VERSION}+${K_JDK_BUILD_VERSION} +ENV PATH=$PATH:${JAVA_HOME}/bin + ################################################################## # installing java20 ################################################################## -RUN wget -qO - https://packages.adoptium.net/artifactory/api/gpg/key/public | apt-key add - && \ - echo 'deb https://packages.adoptium.net/artifactory/deb buster main' > /etc/apt/sources.list.d/temurin-official.list && \ - apt-get update && \ - apt-get autoremove -y && \ - apt-get install -y --allow-unauthenticated temurin-20-jdk temurin-20-jre && \ - mkdir /usr/lib/jvm/temurin-20-jdk-amd64/jre && \ - ln -s /usr/lib/jvm/temurin-20-jdk-amd64/bin/ /usr/lib/jvm/temurin-20-jdk-amd64/jre/bin && \ - ln -s /usr/lib/jvm/temurin-20-jdk-amd64/lib/ /usr/lib/jvm/temurin-20-jdk-amd64/jre/lib && \ +RUN curl --user-agent "Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Firefox/81.0" --location ${K_JDK_URL}?$(date +%s) \ + --header 'Cache-Control: no-cache, no-store' \ + --header 'Pragma: no-cache' | tar xzv --directory /opt && \ java -version ################################################################## diff --git a/linux/ecosystem/epicmorg/debian/10-buster/jdk20/Dockerfile.develop b/linux/ecosystem/epicmorg/debian/10-buster/jdk20/Dockerfile.develop index dbd7830eb..c6c536bdf 100644 --- a/linux/ecosystem/epicmorg/debian/10-buster/jdk20/Dockerfile.develop +++ b/linux/ecosystem/epicmorg/debian/10-buster/jdk20/Dockerfile.develop @@ -2,18 +2,22 @@ FROM epicmorg/debian:buster-develop LABEL maintainer="EpicMorg DevTeam, developer@epicm.org" ARG DEBIAN_FRONTEND=noninteractive +ARG K_JDK_MAJOR_VERSION=jdk-20.0.2 +ARG K_JDK_VERSION=20.0.2 +ARG K_JDK_BUILD_VERSION=9 +ARG K_JDK_URL=https://github.com/adoptium/temurin20-binaries/releases/download/${K_JDK_MAJOR_VERSION}+${K_JDK_BUILD_VERSION}/OpenJDK20U-jdk_x64_linux_hotspot_${K_JDK_VERSION}_${K_JDK_BUILD_VERSION}.tar.gz + +ENV JAVA_HOME=/opt/${K_JDK_MAJOR_VERSION}+${K_JDK_BUILD_VERSION} +ENV PATH=$PATH:${JAVA_HOME}/bin + ################################################################## # installing java20 ################################################################## -RUN wget -qO - https://packages.adoptium.net/artifactory/api/gpg/key/public | apt-key add - && \ - echo 'deb https://packages.adoptium.net/artifactory/deb buster main' > /etc/apt/sources.list.d/temurin-official.list && \ - apt-get update && \ - apt-get autoremove -y && \ - apt-get install -y --allow-unauthenticated temurin-20-jdk temurin-20-jre && \ -# mkdir /usr/lib/jvm/temurin-20-jdk-amd64/jre && \ -# ln -s /usr/lib/jvm/temurin-20-jdk-amd64/bin/ /usr/lib/jvm/temurin-20-jdk-amd64/jre/bin && \ -# ln -s /usr/lib/jvm/temurin-20-jdk-amd64/lib/ /usr/lib/jvm/temurin-20-jdk-amd64/jre/lib && \ +RUN curl --user-agent "Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Firefox/81.0" --location ${K_JDK_URL}?$(date +%s) \ + --header 'Cache-Control: no-cache, no-store' \ + --header 'Pragma: no-cache' | tar xzv --directory /opt && \ java -version + ################################################################## # Additional settings ################################################################## diff --git a/linux/ecosystem/epicmorg/debian/10-buster/jdk8/Dockerfile b/linux/ecosystem/epicmorg/debian/10-buster/jdk8/Dockerfile index b60116384..72dcf2c81 100644 --- a/linux/ecosystem/epicmorg/debian/10-buster/jdk8/Dockerfile +++ b/linux/ecosystem/epicmorg/debian/10-buster/jdk8/Dockerfile @@ -2,15 +2,22 @@ FROM epicmorg/debian:buster LABEL maintainer="EpicMorg DevTeam, developer@epicm.org" ARG DEBIAN_FRONTEND=noninteractive +ARG K_JDK_MAJOR_VERSION=jdk8u412 +ARG K_JDK_VERSION=8u412 +ARG K_JDK_BUILD_VERSION=b08 +ARG K_JDK_URL=https://github.com/adoptium/temurin8-binaries/releases/download/${K_JDK_MAJOR_VERSION}-${K_JDK_BUILD_VERSION}/OpenJDK8U-jdk_x64_linux_hotspot_${K_JDK_VERSION}${K_JDK_BUILD_VERSION}.tar.gz + +ENV JAVA_HOME=/opt/${K_JDK_MAJOR_VERSION}-${K_JDK_BUILD_VERSION} +ENV PATH=$PATH:${JAVA_HOME}/bin + ################################################################## # installing java8 ################################################################## -RUN wget -qO - https://packages.adoptium.net/artifactory/api/gpg/key/public | apt-key add - && \ - echo 'deb https://packages.adoptium.net/artifactory/deb buster main' > /etc/apt/sources.list.d/temurin-official.list && \ - apt-get update && \ - apt-get autoremove -y && \ - apt-get install -y --allow-unauthenticated temurin-8-jdk temurin-8-jre && \ +RUN curl --user-agent "Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Firefox/81.0" --location ${K_JDK_URL}?$(date +%s) \ + --header 'Cache-Control: no-cache, no-store' \ + --header 'Pragma: no-cache' | tar xzv --directory /opt && \ java -version + ################################################################## # Additional settings ################################################################## diff --git a/linux/ecosystem/epicmorg/debian/10-buster/jdk8/Dockerfile.develop b/linux/ecosystem/epicmorg/debian/10-buster/jdk8/Dockerfile.develop index 0451a410b..1ddcdbaff 100644 --- a/linux/ecosystem/epicmorg/debian/10-buster/jdk8/Dockerfile.develop +++ b/linux/ecosystem/epicmorg/debian/10-buster/jdk8/Dockerfile.develop @@ -2,15 +2,22 @@ FROM epicmorg/debian:buster-develop LABEL maintainer="EpicMorg DevTeam, developer@epicm.org" ARG DEBIAN_FRONTEND=noninteractive +ARG K_JDK_MAJOR_VERSION=jdk8u412 +ARG K_JDK_VERSION=8u412 +ARG K_JDK_BUILD_VERSION=b08 +ARG K_JDK_URL=https://github.com/adoptium/temurin8-binaries/releases/download/${K_JDK_MAJOR_VERSION}-${K_JDK_BUILD_VERSION}/OpenJDK8U-jdk_x64_linux_hotspot_${K_JDK_VERSION}${K_JDK_BUILD_VERSION}.tar.gz + +ENV JAVA_HOME=/opt/${K_JDK_MAJOR_VERSION}-${K_JDK_BUILD_VERSION} +ENV PATH=$PATH:${JAVA_HOME}/bin + ################################################################## # installing java8 ################################################################## -RUN wget -qO - https://packages.adoptium.net/artifactory/api/gpg/key/public | apt-key add - && \ - echo 'deb https://packages.adoptium.net/artifactory/deb buster main' > /etc/apt/sources.list.d/temurin-official.list && \ - apt-get update && \ - apt-get autoremove -y && \ - apt-get install -y --allow-unauthenticated temurin-8-jdk temurin-8-jre && \ +RUN curl --user-agent "Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Firefox/81.0" --location ${K_JDK_URL}?$(date +%s) \ + --header 'Cache-Control: no-cache, no-store' \ + --header 'Pragma: no-cache' | tar xzv --directory /opt && \ java -version + ################################################################## # Additional settings ################################################################## diff --git a/linux/ecosystem/epicmorg/debian/10-buster/slim/etc/apt/sources.list b/linux/ecosystem/epicmorg/debian/10-buster/slim/etc/apt/sources.list index 335934107..a02c0b64f 100644 --- a/linux/ecosystem/epicmorg/debian/10-buster/slim/etc/apt/sources.list +++ b/linux/ecosystem/epicmorg/debian/10-buster/slim/etc/apt/sources.list @@ -1,22 +1,22 @@ #main -deb [trusted=yes] http://httpredir.debian.org/debian/ buster main contrib non-free -deb-src [trusted=yes] http://httpredir.debian.org/debian/ buster main contrib non-free +deb [trusted=yes] http://archive.debian.org/debian/ buster main contrib non-free +deb-src [trusted=yes] http://archive.debian.org/debian/ buster main contrib non-free -deb [trusted=yes] http://httpredir.debian.org/debian/ buster-updates main contrib non-free -deb-src [trusted=yes] http://httpredir.debian.org/debian/ buster-updates main contrib non-free +deb [trusted=yes] http://archive.debian.org/debian/ buster-updates main contrib non-free +deb-src [trusted=yes] http://archive.debian.org/debian/ buster-updates main contrib non-free -deb [trusted=yes] http://httpredir.debian.org/debian/ buster-backports main contrib non-free -deb-src [trusted=yes] http://httpredir.debian.org/debian/ buster-backports main contrib non-free +deb [trusted=yes] http://archive.debian.org/debian/ buster-backports main contrib non-free +deb-src [trusted=yes] http://archive.debian.org/debian/ buster-backports main contrib non-free -deb [trusted=yes] http://httpredir.debian.org/debian/ buster-backports-sloppy main contrib non-free -deb-src [trusted=yes] http://httpredir.debian.org/debian/ buster-backports-sloppy main contrib non-free +deb [trusted=yes] http://archive.debian.org/debian/ buster-backports-sloppy main contrib non-free +deb-src [trusted=yes] http://archive.debian.org/debian/ buster-backports-sloppy main contrib non-free -deb [trusted=yes] http://httpredir.debian.org/debian/ buster-proposed-updates main contrib non-free -deb-src [trusted=yes] http://httpredir.debian.org/debian/ buster-proposed-updates main contrib non-free +deb [trusted=yes] http://archive.debian.org/debian/ buster-proposed-updates main contrib non-free +deb-src [trusted=yes] http://archive.debian.org/debian/ buster-proposed-updates main contrib non-free #security -deb [trusted=yes] http://security.debian.org/debian-security/ buster/updates main contrib non-free -deb-src [trusted=yes] http://security.debian.org/debian-security/ buster/updates main contrib non-free +deb [trusted=yes] http://security.debian.org/debian-security/ buster/updates main contrib non-free +deb-src [trusted=yes] http://security.debian.org/debian-security/ buster/updates main contrib non-free -deb [trusted=yes] http://httpredir.debian.org/debian-security/ buster/updates main contrib non-free -deb-src [trusted=yes] http://httpredir.debian.org/debian-security/ buster/updates main contrib non-free +deb [trusted=yes] http://httpredir.debian.org/debian-security/ buster/updates main contrib non-free +deb-src [trusted=yes] http://httpredir.debian.org/debian-security/ buster/updates main contrib non-free diff --git a/linux/ecosystem/epicmorg/debian/11-bullseye/jdk11/Dockerfile b/linux/ecosystem/epicmorg/debian/11-bullseye/jdk11/Dockerfile index b19fcbddb..46ae491a1 100644 --- a/linux/ecosystem/epicmorg/debian/11-bullseye/jdk11/Dockerfile +++ b/linux/ecosystem/epicmorg/debian/11-bullseye/jdk11/Dockerfile @@ -2,17 +2,20 @@ FROM epicmorg/debian:bullseye LABEL maintainer="EpicMorg DevTeam, developer@epicm.org" ARG DEBIAN_FRONTEND=noninteractive +ARG K_JDK_MAJOR_VERSION=jdk-11.0.23 +ARG K_JDK_VERSION=11.0.23 +ARG K_JDK_BUILD_VERSION=9 +ARG K_JDK_URL=https://github.com/adoptium/temurin11-binaries/releases/download/${K_JDK_MAJOR_VERSION}+${K_JDK_BUILD_VERSION}/OpenJDK11U-jdk_x64_linux_hotspot_${K_JDK_VERSION}_${K_JDK_BUILD_VERSION}.tar.gz + +ENV JAVA_HOME=/opt/${K_JDK_MAJOR_VERSION}+${K_JDK_BUILD_VERSION} +ENV PATH=$PATH:${JAVA_HOME}/bin + ################################################################## # installing java11 ################################################################## -RUN wget --no-check-certificate -O - https://packages.adoptium.net/artifactory/api/gpg/key/public | tee /etc/apt/keyrings/adoptium.asc && \ - echo 'deb [signed-by=/etc/apt/keyrings/adoptium.asc] https://packages.adoptium.net/artifactory/deb bullseye main' > /etc/apt/sources.list.d/temurin-official.list && \ - apt-get update && \ - apt-get autoremove -y && \ - apt-get install -y --allow-unauthenticated temurin-11-jdk temurin-11-jre && \ - mkdir /usr/lib/jvm/temurin-11-jdk-amd64/jre && \ - ln -s /usr/lib/jvm/temurin-11-jdk-amd64/bin/ /usr/lib/jvm/temurin-11-jdk-amd64/jre/bin && \ - ln -s /usr/lib/jvm/temurin-11-jdk-amd64/lib/ /usr/lib/jvm/temurin-11-jdk-amd64/jre/lib && \ +RUN curl --user-agent "Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Firefox/81.0" --location ${K_JDK_URL}?$(date +%s) \ + --header 'Cache-Control: no-cache, no-store' \ + --header 'Pragma: no-cache' | tar xzv --directory /opt && \ java -version ################################################################## diff --git a/linux/ecosystem/epicmorg/debian/11-bullseye/jdk11/Dockerfile.develop b/linux/ecosystem/epicmorg/debian/11-bullseye/jdk11/Dockerfile.develop index 721c946d6..a0fa4b0d4 100644 --- a/linux/ecosystem/epicmorg/debian/11-bullseye/jdk11/Dockerfile.develop +++ b/linux/ecosystem/epicmorg/debian/11-bullseye/jdk11/Dockerfile.develop @@ -2,17 +2,20 @@ FROM epicmorg/debian:bullseye-develop LABEL maintainer="EpicMorg DevTeam, developer@epicm.org" ARG DEBIAN_FRONTEND=noninteractive +ARG K_JDK_MAJOR_VERSION=jdk-11.0.23 +ARG K_JDK_VERSION=11.0.23 +ARG K_JDK_BUILD_VERSION=9 +ARG K_JDK_URL=https://github.com/adoptium/temurin11-binaries/releases/download/${K_JDK_MAJOR_VERSION}+${K_JDK_BUILD_VERSION}/OpenJDK11U-jdk_x64_linux_hotspot_${K_JDK_VERSION}_${K_JDK_BUILD_VERSION}.tar.gz + +ENV JAVA_HOME=/opt/${K_JDK_MAJOR_VERSION}+${K_JDK_BUILD_VERSION} +ENV PATH=$PATH:${JAVA_HOME}/bin + ################################################################## # installing java11 ################################################################## -RUN wget --no-check-certificate -O - https://packages.adoptium.net/artifactory/api/gpg/key/public | tee /etc/apt/keyrings/adoptium.asc && \ - echo 'deb [signed-by=/etc/apt/keyrings/adoptium.asc] https://packages.adoptium.net/artifactory/deb bullseye main' > /etc/apt/sources.list.d/temurin-official.list && \ - apt-get update && \ - apt-get autoremove -y && \ - apt-get install -y --allow-unauthenticated temurin-11-jdk temurin-11-jre && \ - mkdir /usr/lib/jvm/temurin-11-jdk-amd64/jre && \ - ln -s /usr/lib/jvm/temurin-11-jdk-amd64/bin/ /usr/lib/jvm/temurin-11-jdk-amd64/jre/bin && \ - ln -s /usr/lib/jvm/temurin-11-jdk-amd64/lib/ /usr/lib/jvm/temurin-11-jdk-amd64/jre/lib && \ +RUN curl --user-agent "Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Firefox/81.0" --location ${K_JDK_URL}?$(date +%s) \ + --header 'Cache-Control: no-cache, no-store' \ + --header 'Pragma: no-cache' | tar xzv --directory /opt && \ java -version ################################################################## diff --git a/linux/ecosystem/epicmorg/debian/11-bullseye/jdk17/Dockerfile b/linux/ecosystem/epicmorg/debian/11-bullseye/jdk17/Dockerfile index c503d132b..c2fcdd521 100644 --- a/linux/ecosystem/epicmorg/debian/11-bullseye/jdk17/Dockerfile +++ b/linux/ecosystem/epicmorg/debian/11-bullseye/jdk17/Dockerfile @@ -2,17 +2,20 @@ FROM epicmorg/debian:bullseye LABEL maintainer="EpicMorg DevTeam, developer@epicm.org" ARG DEBIAN_FRONTEND=noninteractive +ARG K_JDK_MAJOR_VERSION=jdk-17.0.11 +ARG K_JDK_VERSION=17.0.11 +ARG K_JDK_BUILD_VERSION=9 +ARG K_JDK_URL=https://github.com/adoptium/temurin17-binaries/releases/download/${K_JDK_MAJOR_VERSION}+${K_JDK_BUILD_VERSION}/OpenJDK17U-jdk_x64_linux_hotspot_${K_JDK_VERSION}_${K_JDK_BUILD_VERSION}.tar.gz + +ENV JAVA_HOME=/opt/${K_JDK_MAJOR_VERSION}+${K_JDK_BUILD_VERSION} +ENV PATH=$PATH:${JAVA_HOME}/bin + ################################################################## # installing java17 ################################################################## -RUN wget --no-check-certificate -O - https://packages.adoptium.net/artifactory/api/gpg/key/public | tee /etc/apt/keyrings/adoptium.asc && \ - echo 'deb [signed-by=/etc/apt/keyrings/adoptium.asc] https://packages.adoptium.net/artifactory/deb bullseye main' > /etc/apt/sources.list.d/temurin-official.list && \ - apt-get update && \ - apt-get autoremove -y && \ - apt-get install -y --allow-unauthenticated temurin-17-jdk temurin-17-jre && \ - mkdir /usr/lib/jvm/temurin-17-jdk-amd64/jre && \ - ln -s /usr/lib/jvm/temurin-17-jdk-amd64/bin/ /usr/lib/jvm/temurin-17-jdk-amd64/jre/bin && \ - ln -s /usr/lib/jvm/temurin-17-jdk-amd64/lib/ /usr/lib/jvm/temurin-17-jdk-amd64/jre/lib && \ +RUN curl --user-agent "Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Firefox/81.0" --location ${K_JDK_URL}?$(date +%s) \ + --header 'Cache-Control: no-cache, no-store' \ + --header 'Pragma: no-cache' | tar xzv --directory /opt && \ java -version ################################################################## diff --git a/linux/ecosystem/epicmorg/debian/11-bullseye/jdk17/Dockerfile.develop b/linux/ecosystem/epicmorg/debian/11-bullseye/jdk17/Dockerfile.develop index dcbc33b34..22712cd18 100644 --- a/linux/ecosystem/epicmorg/debian/11-bullseye/jdk17/Dockerfile.develop +++ b/linux/ecosystem/epicmorg/debian/11-bullseye/jdk17/Dockerfile.develop @@ -2,17 +2,20 @@ FROM epicmorg/debian:bullseye-develop LABEL maintainer="EpicMorg DevTeam, developer@epicm.org" ARG DEBIAN_FRONTEND=noninteractive +ARG K_JDK_MAJOR_VERSION=jdk-17.0.11 +ARG K_JDK_VERSION=17.0.11 +ARG K_JDK_BUILD_VERSION=9 +ARG K_JDK_URL=https://github.com/adoptium/temurin17-binaries/releases/download/${K_JDK_MAJOR_VERSION}+${K_JDK_BUILD_VERSION}/OpenJDK17U-jdk_x64_linux_hotspot_${K_JDK_VERSION}_${K_JDK_BUILD_VERSION}.tar.gz + +ENV JAVA_HOME=/opt/${K_JDK_MAJOR_VERSION}+${K_JDK_BUILD_VERSION} +ENV PATH=$PATH:${JAVA_HOME}/bin + ################################################################## # installing java17 ################################################################## -RUN wget --no-check-certificate -O - https://packages.adoptium.net/artifactory/api/gpg/key/public | tee /etc/apt/keyrings/adoptium.asc && \ - echo 'deb [signed-by=/etc/apt/keyrings/adoptium.asc] https://packages.adoptium.net/artifactory/deb bullseye main' > /etc/apt/sources.list.d/temurin-official.list && \ - apt-get update && \ - apt-get autoremove -y && \ - apt-get install -y --allow-unauthenticated temurin-17-jdk temurin-17-jre && \ - mkdir /usr/lib/jvm/temurin-17-jdk-amd64/jre && \ - ln -s /usr/lib/jvm/temurin-17-jdk-amd64/bin/ /usr/lib/jvm/temurin-17-jdk-amd64/jre/bin && \ - ln -s /usr/lib/jvm/temurin-17-jdk-amd64/lib/ /usr/lib/jvm/temurin-17-jdk-amd64/jre/lib && \ +RUN curl --user-agent "Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Firefox/81.0" --location ${K_JDK_URL}?$(date +%s) \ + --header 'Cache-Control: no-cache, no-store' \ + --header 'Pragma: no-cache' | tar xzv --directory /opt && \ java -version ################################################################## diff --git a/linux/ecosystem/epicmorg/debian/11-bullseye/jdk18/Dockerfile b/linux/ecosystem/epicmorg/debian/11-bullseye/jdk18/Dockerfile index 4e1156f25..93fcdea87 100644 --- a/linux/ecosystem/epicmorg/debian/11-bullseye/jdk18/Dockerfile +++ b/linux/ecosystem/epicmorg/debian/11-bullseye/jdk18/Dockerfile @@ -2,17 +2,20 @@ FROM epicmorg/debian:bullseye LABEL maintainer="EpicMorg DevTeam, developer@epicm.org" ARG DEBIAN_FRONTEND=noninteractive +ARG K_JDK_MAJOR_VERSION=jdk-18.0.2.1 +ARG K_JDK_VERSION=18.0.2.1 +ARG K_JDK_BUILD_VERSION=1 +ARG K_JDK_URL=https://github.com/adoptium/temurin18-binaries/releases/download/${K_JDK_MAJOR_VERSION}+${K_JDK_BUILD_VERSION}/OpenJDK18U-jdk_x64_linux_hotspot_${K_JDK_VERSION}_${K_JDK_BUILD_VERSION}.tar.gz + +ENV JAVA_HOME=/opt/${K_JDK_MAJOR_VERSION}+${K_JDK_BUILD_VERSION} +ENV PATH=$PATH:${JAVA_HOME}/bin + ################################################################## # installing java18 ################################################################## -RUN wget --no-check-certificate -O - https://packages.adoptium.net/artifactory/api/gpg/key/public | tee /etc/apt/keyrings/adoptium.asc && \ - echo 'deb [signed-by=/etc/apt/keyrings/adoptium.asc] https://packages.adoptium.net/artifactory/deb bullseye main' > /etc/apt/sources.list.d/temurin-official.list && \ - apt-get update && \ - apt-get autoremove -y && \ - apt-get install -y --allow-unauthenticated temurin-18-jdk && \ - mkdir /usr/lib/jvm/temurin-18-jdk-amd64/jre && \ - ln -s /usr/lib/jvm/temurin-18-jdk-amd64/bin/ /usr/lib/jvm/temurin-18-jdk-amd64/jre/bin && \ - ln -s /usr/lib/jvm/temurin-18-jdk-amd64/lib/ /usr/lib/jvm/temurin-18-jdk-amd64/jre/lib && \ +RUN curl --user-agent "Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Firefox/81.0" --location ${K_JDK_URL}?$(date +%s) \ + --header 'Cache-Control: no-cache, no-store' \ + --header 'Pragma: no-cache' | tar xzv --directory /opt && \ java -version ################################################################## diff --git a/linux/ecosystem/epicmorg/debian/11-bullseye/jdk18/Dockerfile.develop b/linux/ecosystem/epicmorg/debian/11-bullseye/jdk18/Dockerfile.develop index aa1846c76..74bbc201d 100644 --- a/linux/ecosystem/epicmorg/debian/11-bullseye/jdk18/Dockerfile.develop +++ b/linux/ecosystem/epicmorg/debian/11-bullseye/jdk18/Dockerfile.develop @@ -2,17 +2,20 @@ FROM epicmorg/debian:bullseye-develop LABEL maintainer="EpicMorg DevTeam, developer@epicm.org" ARG DEBIAN_FRONTEND=noninteractive +ARG K_JDK_MAJOR_VERSION=jdk-18.0.2.1 +ARG K_JDK_VERSION=18.0.2.1 +ARG K_JDK_BUILD_VERSION=1 +ARG K_JDK_URL=https://github.com/adoptium/temurin18-binaries/releases/download/${K_JDK_MAJOR_VERSION}+${K_JDK_BUILD_VERSION}/OpenJDK18U-jdk_x64_linux_hotspot_${K_JDK_VERSION}_${K_JDK_BUILD_VERSION}.tar.gz + +ENV JAVA_HOME=/opt/${K_JDK_MAJOR_VERSION}+${K_JDK_BUILD_VERSION} +ENV PATH=$PATH:${JAVA_HOME}/bin + ################################################################## # installing java18 ################################################################## -RUN wget --no-check-certificate -O - https://packages.adoptium.net/artifactory/api/gpg/key/public | tee /etc/apt/keyrings/adoptium.asc && \ - echo 'deb [signed-by=/etc/apt/keyrings/adoptium.asc] https://packages.adoptium.net/artifactory/deb bullseye main' > /etc/apt/sources.list.d/temurin-official.list && \ - apt-get update && \ - apt-get autoremove -y && \ - apt-get install -y --allow-unauthenticated temurin-18-jdk && \ - mkdir /usr/lib/jvm/temurin-18-jdk-amd64/jre && \ - ln -s /usr/lib/jvm/temurin-18-jdk-amd64/bin/ /usr/lib/jvm/temurin-18-jdk-amd64/jre/bin && \ - ln -s /usr/lib/jvm/temurin-18-jdk-amd64/lib/ /usr/lib/jvm/temurin-18-jdk-amd64/jre/lib && \ +RUN curl --user-agent "Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Firefox/81.0" --location ${K_JDK_URL}?$(date +%s) \ + --header 'Cache-Control: no-cache, no-store' \ + --header 'Pragma: no-cache' | tar xzv --directory /opt && \ java -version ################################################################## diff --git a/linux/ecosystem/epicmorg/debian/11-bullseye/jdk19/Dockerfile b/linux/ecosystem/epicmorg/debian/11-bullseye/jdk19/Dockerfile index 58ee7cbc5..e2cd2b7db 100644 --- a/linux/ecosystem/epicmorg/debian/11-bullseye/jdk19/Dockerfile +++ b/linux/ecosystem/epicmorg/debian/11-bullseye/jdk19/Dockerfile @@ -2,17 +2,20 @@ FROM epicmorg/debian:bullseye LABEL maintainer="EpicMorg DevTeam, developer@epicm.org" ARG DEBIAN_FRONTEND=noninteractive +ARG K_JDK_MAJOR_VERSION=jdk-19.0.2 +ARG K_JDK_VERSION=19.0.2 +ARG K_JDK_BUILD_VERSION=7 +ARG K_JDK_URL=https://github.com/adoptium/temurin19-binaries/releases/download/${K_JDK_MAJOR_VERSION}+${K_JDK_BUILD_VERSION}/OpenJDK19U-jdk_x64_linux_hotspot_${K_JDK_VERSION}_${K_JDK_BUILD_VERSION}.tar.gz + +ENV JAVA_HOME=/opt/${K_JDK_MAJOR_VERSION}+${K_JDK_BUILD_VERSION} +ENV PATH=$PATH:${JAVA_HOME}/bin + ################################################################## # installing java19 ################################################################## -RUN wget --no-check-certificate -O - https://packages.adoptium.net/artifactory/api/gpg/key/public | tee /etc/apt/keyrings/adoptium.asc && \ - echo 'deb [signed-by=/etc/apt/keyrings/adoptium.asc] https://packages.adoptium.net/artifactory/deb bullseye main' > /etc/apt/sources.list.d/temurin-official.list && \ - apt-get update && \ - apt-get autoremove -y && \ - apt-get install -y --allow-unauthenticated temurin-19-jdk temurin-19-jre && \ - mkdir /usr/lib/jvm/temurin-19-jdk-amd64/jre && \ - ln -s /usr/lib/jvm/temurin-19-jdk-amd64/bin/ /usr/lib/jvm/temurin-19-jdk-amd64/jre/bin && \ - ln -s /usr/lib/jvm/temurin-19-jdk-amd64/lib/ /usr/lib/jvm/temurin-19-jdk-amd64/jre/lib && \ +RUN curl --user-agent "Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Firefox/81.0" --location ${K_JDK_URL}?$(date +%s) \ + --header 'Cache-Control: no-cache, no-store' \ + --header 'Pragma: no-cache' | tar xzv --directory /opt && \ java -version ################################################################## diff --git a/linux/ecosystem/epicmorg/debian/11-bullseye/jdk19/Dockerfile.develop b/linux/ecosystem/epicmorg/debian/11-bullseye/jdk19/Dockerfile.develop index 4001b9670..ceac4c0f0 100644 --- a/linux/ecosystem/epicmorg/debian/11-bullseye/jdk19/Dockerfile.develop +++ b/linux/ecosystem/epicmorg/debian/11-bullseye/jdk19/Dockerfile.develop @@ -2,17 +2,20 @@ FROM epicmorg/debian:bullseye-develop LABEL maintainer="EpicMorg DevTeam, developer@epicm.org" ARG DEBIAN_FRONTEND=noninteractive +ARG K_JDK_MAJOR_VERSION=jdk-19.0.2 +ARG K_JDK_VERSION=19.0.2 +ARG K_JDK_BUILD_VERSION=7 +ARG K_JDK_URL=https://github.com/adoptium/temurin19-binaries/releases/download/${K_JDK_MAJOR_VERSION}+${K_JDK_BUILD_VERSION}/OpenJDK19U-jdk_x64_linux_hotspot_${K_JDK_VERSION}_${K_JDK_BUILD_VERSION}.tar.gz + +ENV JAVA_HOME=/opt/${K_JDK_MAJOR_VERSION}+${K_JDK_BUILD_VERSION} +ENV PATH=$PATH:${JAVA_HOME}/bin + ################################################################## -# installing java18 +# installing java19 ################################################################## -RUN wget --no-check-certificate -O - https://packages.adoptium.net/artifactory/api/gpg/key/public | tee /etc/apt/keyrings/adoptium.asc && \ - echo 'deb [signed-by=/etc/apt/keyrings/adoptium.asc] https://packages.adoptium.net/artifactory/deb bullseye main' > /etc/apt/sources.list.d/temurin-official.list && \ - apt-get update && \ - apt-get autoremove -y && \ - apt-get install -y --allow-unauthenticated temurin-19-jdk temurin-19-jre && \ - mkdir /usr/lib/jvm/temurin-19-jdk-amd64/jre && \ - ln -s /usr/lib/jvm/temurin-19-jdk-amd64/bin/ /usr/lib/jvm/temurin-19-jdk-amd64/jre/bin && \ - ln -s /usr/lib/jvm/temurin-19-jdk-amd64/lib/ /usr/lib/jvm/temurin-19-jdk-amd64/jre/lib && \ +RUN curl --user-agent "Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Firefox/81.0" --location ${K_JDK_URL}?$(date +%s) \ + --header 'Cache-Control: no-cache, no-store' \ + --header 'Pragma: no-cache' | tar xzv --directory /opt && \ java -version ################################################################## diff --git a/linux/ecosystem/epicmorg/debian/11-bullseye/jdk20/Dockerfile b/linux/ecosystem/epicmorg/debian/11-bullseye/jdk20/Dockerfile index cbb882736..b045f379d 100644 --- a/linux/ecosystem/epicmorg/debian/11-bullseye/jdk20/Dockerfile +++ b/linux/ecosystem/epicmorg/debian/11-bullseye/jdk20/Dockerfile @@ -2,17 +2,20 @@ FROM epicmorg/debian:bullseye LABEL maintainer="EpicMorg DevTeam, developer@epicm.org" ARG DEBIAN_FRONTEND=noninteractive +ARG K_JDK_MAJOR_VERSION=jdk-20.0.2 +ARG K_JDK_VERSION=20.0.2 +ARG K_JDK_BUILD_VERSION=9 +ARG K_JDK_URL=https://github.com/adoptium/temurin20-binaries/releases/download/${K_JDK_MAJOR_VERSION}+${K_JDK_BUILD_VERSION}/OpenJDK20U-jdk_x64_linux_hotspot_${K_JDK_VERSION}_${K_JDK_BUILD_VERSION}.tar.gz + +ENV JAVA_HOME=/opt/${K_JDK_MAJOR_VERSION}+${K_JDK_BUILD_VERSION} +ENV PATH=$PATH:${JAVA_HOME}/bin + ################################################################## # installing java20 ################################################################## -RUN wget --no-check-certificate -O - https://packages.adoptium.net/artifactory/api/gpg/key/public | tee /etc/apt/keyrings/adoptium.asc && \ - echo 'deb [signed-by=/etc/apt/keyrings/adoptium.asc] https://packages.adoptium.net/artifactory/deb bullseye main' > /etc/apt/sources.list.d/temurin-official.list && \ - apt-get update && \ - apt-get autoremove -y && \ - apt-get install -y --allow-unauthenticated temurin-20-jdk temurin-20-jre && \ - mkdir /usr/lib/jvm/temurin-20-jdk-amd64/jre && \ - ln -s /usr/lib/jvm/temurin-20-jdk-amd64/bin/ /usr/lib/jvm/temurin-20-jdk-amd64/jre/bin && \ - ln -s /usr/lib/jvm/temurin-20-jdk-amd64/lib/ /usr/lib/jvm/temurin-20-jdk-amd64/jre/lib && \ +RUN curl --user-agent "Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Firefox/81.0" --location ${K_JDK_URL}?$(date +%s) \ + --header 'Cache-Control: no-cache, no-store' \ + --header 'Pragma: no-cache' | tar xzv --directory /opt && \ java -version ################################################################## diff --git a/linux/ecosystem/epicmorg/debian/11-bullseye/jdk20/Dockerfile.develop b/linux/ecosystem/epicmorg/debian/11-bullseye/jdk20/Dockerfile.develop index d9dc3abf3..6c09a6964 100644 --- a/linux/ecosystem/epicmorg/debian/11-bullseye/jdk20/Dockerfile.develop +++ b/linux/ecosystem/epicmorg/debian/11-bullseye/jdk20/Dockerfile.develop @@ -2,17 +2,20 @@ FROM epicmorg/debian:bullseye-develop LABEL maintainer="EpicMorg DevTeam, developer@epicm.org" ARG DEBIAN_FRONTEND=noninteractive +ARG K_JDK_MAJOR_VERSION=jdk-20.0.2 +ARG K_JDK_VERSION=20.0.2 +ARG K_JDK_BUILD_VERSION=9 +ARG K_JDK_URL=https://github.com/adoptium/temurin20-binaries/releases/download/${K_JDK_MAJOR_VERSION}+${K_JDK_BUILD_VERSION}/OpenJDK20U-jdk_x64_linux_hotspot_${K_JDK_VERSION}_${K_JDK_BUILD_VERSION}.tar.gz + +ENV JAVA_HOME=/opt/${K_JDK_MAJOR_VERSION}+${K_JDK_BUILD_VERSION} +ENV PATH=$PATH:${JAVA_HOME}/bin + ################################################################## # installing java20 ################################################################## -RUN wget --no-check-certificate -O - https://packages.adoptium.net/artifactory/api/gpg/key/public | tee /etc/apt/keyrings/adoptium.asc && \ - echo 'deb [signed-by=/etc/apt/keyrings/adoptium.asc] https://packages.adoptium.net/artifactory/deb bullseye main' > /etc/apt/sources.list.d/temurin-official.list && \ - apt-get update && \ - apt-get autoremove -y && \ - apt-get install -y --allow-unauthenticated temurin-20-jdk temurin-20-jre && \ - mkdir /usr/lib/jvm/temurin-20-jdk-amd64/jre && \ - ln -s /usr/lib/jvm/temurin-20-jdk-amd64/bin/ /usr/lib/jvm/temurin-20-jdk-amd64/jre/bin && \ - ln -s /usr/lib/jvm/temurin-20-jdk-amd64/lib/ /usr/lib/jvm/temurin-20-jdk-amd64/jre/lib && \ +RUN curl --user-agent "Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Firefox/81.0" --location ${K_JDK_URL}?$(date +%s) \ + --header 'Cache-Control: no-cache, no-store' \ + --header 'Pragma: no-cache' | tar xzv --directory /opt && \ java -version ################################################################## diff --git a/linux/ecosystem/epicmorg/debian/11-bullseye/jdk21/Dockerfile b/linux/ecosystem/epicmorg/debian/11-bullseye/jdk21/Dockerfile index a699a6047..96a00ff3c 100644 --- a/linux/ecosystem/epicmorg/debian/11-bullseye/jdk21/Dockerfile +++ b/linux/ecosystem/epicmorg/debian/11-bullseye/jdk21/Dockerfile @@ -2,19 +2,21 @@ FROM epicmorg/debian:bullseye LABEL maintainer="EpicMorg DevTeam, developer@epicm.org" ARG DEBIAN_FRONTEND=noninteractive -################################################################## -# installing java20 -################################################################## -RUN wget --no-check-certificate -O - https://packages.adoptium.net/artifactory/api/gpg/key/public | tee /etc/apt/keyrings/adoptium.asc && \ - echo 'deb [signed-by=/etc/apt/keyrings/adoptium.asc] https://packages.adoptium.net/artifactory/deb bullseye main' > /etc/apt/sources.list.d/temurin-official.list && \ - apt-get update && \ - apt-get autoremove -y && \ - apt-get install -y --allow-unauthenticated temurin-21-jdk temurin-21-jre && \ - mkdir /usr/lib/jvm/temurin-21-jdk-amd64/jre && \ - ln -s /usr/lib/jvm/temurin-21-jdk-amd64/bin/ /usr/lib/jvm/temurin-21-jdk-amd64/jre/bin && \ - ln -s /usr/lib/jvm/temurin-21-jdk-amd64/lib/ /usr/lib/jvm/temurin-21-jdk-amd64/jre/lib && \ - java -version +ARG K_JDK_MAJOR_VERSION=jdk-21.0.3 +ARG K_JDK_VERSION=21.0.3 +ARG K_JDK_BUILD_VERSION=9 +ARG K_JDK_URL=https://github.com/adoptium/temurin21-binaries/releases/download/${K_JDK_MAJOR_VERSION}+${K_JDK_BUILD_VERSION}/OpenJDK21U-jdk_x64_linux_hotspot_${K_JDK_VERSION}_${K_JDK_BUILD_VERSION}.tar.gz +ENV JAVA_HOME=/opt/${K_JDK_MAJOR_VERSION}+${K_JDK_BUILD_VERSION} +ENV PATH=$PATH:${JAVA_HOME}/bin + +################################################################## +# installing java21 +################################################################## +RUN curl --user-agent "Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Firefox/81.0" --location ${K_JDK_URL}?$(date +%s) \ + --header 'Cache-Control: no-cache, no-store' \ + --header 'Pragma: no-cache' | tar xzv --directory /opt && \ + java -version ################################################################## # Additional settings diff --git a/linux/ecosystem/epicmorg/debian/11-bullseye/jdk21/Dockerfile.develop b/linux/ecosystem/epicmorg/debian/11-bullseye/jdk21/Dockerfile.develop index df8fecff8..692b1f503 100644 --- a/linux/ecosystem/epicmorg/debian/11-bullseye/jdk21/Dockerfile.develop +++ b/linux/ecosystem/epicmorg/debian/11-bullseye/jdk21/Dockerfile.develop @@ -2,17 +2,20 @@ FROM epicmorg/debian:bullseye-develop LABEL maintainer="EpicMorg DevTeam, developer@epicm.org" ARG DEBIAN_FRONTEND=noninteractive +ARG K_JDK_MAJOR_VERSION=jdk-21.0.3 +ARG K_JDK_VERSION=21.0.3 +ARG K_JDK_BUILD_VERSION=9 +ARG K_JDK_URL=https://github.com/adoptium/temurin21-binaries/releases/download/${K_JDK_MAJOR_VERSION}+${K_JDK_BUILD_VERSION}/OpenJDK21U-jdk_x64_linux_hotspot_${K_JDK_VERSION}_${K_JDK_BUILD_VERSION}.tar.gz + +ENV JAVA_HOME=/opt/${K_JDK_MAJOR_VERSION}+${K_JDK_BUILD_VERSION} +ENV PATH=$PATH:${JAVA_HOME}/bin + ################################################################## -# installing java20 +# installing java21 ################################################################## -RUN wget --no-check-certificate -O - https://packages.adoptium.net/artifactory/api/gpg/key/public | tee /etc/apt/keyrings/adoptium.asc && \ - echo 'deb [signed-by=/etc/apt/keyrings/adoptium.asc] https://packages.adoptium.net/artifactory/deb bullseye main' > /etc/apt/sources.list.d/temurin-official.list && \ - apt-get update && \ - apt-get autoremove -y && \ - apt-get install -y --allow-unauthenticated temurin-21-jdk temurin-21-jre && \ - mkdir /usr/lib/jvm/temurin-21-jdk-amd64/jre && \ - ln -s /usr/lib/jvm/temurin-21-jdk-amd64/bin/ /usr/lib/jvm/temurin-21-jdk-amd64/jre/bin && \ - ln -s /usr/lib/jvm/temurin-21-jdk-amd64/lib/ /usr/lib/jvm/temurin-21-jdk-amd64/jre/lib && \ +RUN curl --user-agent "Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Firefox/81.0" --location ${K_JDK_URL}?$(date +%s) \ + --header 'Cache-Control: no-cache, no-store' \ + --header 'Pragma: no-cache' | tar xzv --directory /opt && \ java -version ################################################################## diff --git a/linux/ecosystem/epicmorg/debian/11-bullseye/jdk8/Dockerfile b/linux/ecosystem/epicmorg/debian/11-bullseye/jdk8/Dockerfile index f9c433bd6..0b25eb5af 100644 --- a/linux/ecosystem/epicmorg/debian/11-bullseye/jdk8/Dockerfile +++ b/linux/ecosystem/epicmorg/debian/11-bullseye/jdk8/Dockerfile @@ -2,14 +2,20 @@ FROM epicmorg/debian:bullseye LABEL maintainer="EpicMorg DevTeam, developer@epicm.org" ARG DEBIAN_FRONTEND=noninteractive +ARG K_JDK_MAJOR_VERSION=jdk8u412 +ARG K_JDK_VERSION=8u412 +ARG K_JDK_BUILD_VERSION=b08 +ARG K_JDK_URL=https://github.com/adoptium/temurin8-binaries/releases/download/${K_JDK_MAJOR_VERSION}-${K_JDK_BUILD_VERSION}/OpenJDK8U-jdk_x64_linux_hotspot_${K_JDK_VERSION}${K_JDK_BUILD_VERSION}.tar.gz + +ENV JAVA_HOME=/opt/${K_JDK_MAJOR_VERSION}-${K_JDK_BUILD_VERSION} +ENV PATH=$PATH:${JAVA_HOME}/bin + ################################################################## # installing java8 ################################################################## -RUN wget --no-check-certificate -O - https://packages.adoptium.net/artifactory/api/gpg/key/public | tee /etc/apt/keyrings/adoptium.asc && \ - echo 'deb [signed-by=/etc/apt/keyrings/adoptium.asc] https://packages.adoptium.net/artifactory/deb bullseye main' > /etc/apt/sources.list.d/temurin-official.list && \ - apt-get update && \ - apt-get autoremove -y && \ - apt-get install -y --allow-unauthenticated temurin-8-jdk temurin-8-jre && \ +RUN curl --user-agent "Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Firefox/81.0" --location ${K_JDK_URL}?$(date +%s) \ + --header 'Cache-Control: no-cache, no-store' \ + --header 'Pragma: no-cache' | tar xzv --directory /opt && \ java -version ################################################################## diff --git a/linux/ecosystem/epicmorg/debian/11-bullseye/jdk8/Dockerfile.develop b/linux/ecosystem/epicmorg/debian/11-bullseye/jdk8/Dockerfile.develop index 0eb41c149..329e164b5 100644 --- a/linux/ecosystem/epicmorg/debian/11-bullseye/jdk8/Dockerfile.develop +++ b/linux/ecosystem/epicmorg/debian/11-bullseye/jdk8/Dockerfile.develop @@ -2,14 +2,20 @@ FROM epicmorg/debian:bullseye-develop LABEL maintainer="EpicMorg DevTeam, developer@epicm.org" ARG DEBIAN_FRONTEND=noninteractive +ARG K_JDK_MAJOR_VERSION=jdk8u412 +ARG K_JDK_VERSION=8u412 +ARG K_JDK_BUILD_VERSION=b08 +ARG K_JDK_URL=https://github.com/adoptium/temurin8-binaries/releases/download/${K_JDK_MAJOR_VERSION}-${K_JDK_BUILD_VERSION}/OpenJDK8U-jdk_x64_linux_hotspot_${K_JDK_VERSION}${K_JDK_BUILD_VERSION}.tar.gz + +ENV JAVA_HOME=/opt/${K_JDK_MAJOR_VERSION}-${K_JDK_BUILD_VERSION} +ENV PATH=$PATH:${JAVA_HOME}/bin + ################################################################## # installing java8 ################################################################## -RUN wget --no-check-certificate -O - https://packages.adoptium.net/artifactory/api/gpg/key/public | tee /etc/apt/keyrings/adoptium.asc && \ - echo 'deb [signed-by=/etc/apt/keyrings/adoptium.asc] https://packages.adoptium.net/artifactory/deb bullseye main' > /etc/apt/sources.list.d/temurin-official.list && \ - apt-get update && \ - apt-get autoremove -y && \ - apt-get install -y --allow-unauthenticated temurin-8-jdk temurin-8-jre && \ +RUN curl --user-agent "Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Firefox/81.0" --location ${K_JDK_URL}?$(date +%s) \ + --header 'Cache-Control: no-cache, no-store' \ + --header 'Pragma: no-cache' | tar xzv --directory /opt && \ java -version ################################################################## diff --git a/linux/ecosystem/epicmorg/debian/12-bookworm/jdk11/Dockerfile b/linux/ecosystem/epicmorg/debian/12-bookworm/jdk11/Dockerfile index c819d1945..ae9a6826f 100644 --- a/linux/ecosystem/epicmorg/debian/12-bookworm/jdk11/Dockerfile +++ b/linux/ecosystem/epicmorg/debian/12-bookworm/jdk11/Dockerfile @@ -2,17 +2,20 @@ FROM epicmorg/debian:bookworm LABEL maintainer="EpicMorg DevTeam, developer@epicm.org" ARG DEBIAN_FRONTEND=noninteractive +ARG K_JDK_MAJOR_VERSION=jdk-11.0.23 +ARG K_JDK_VERSION=11.0.23 +ARG K_JDK_BUILD_VERSION=9 +ARG K_JDK_URL=https://github.com/adoptium/temurin11-binaries/releases/download/${K_JDK_MAJOR_VERSION}+${K_JDK_BUILD_VERSION}/OpenJDK11U-jdk_x64_linux_hotspot_${K_JDK_VERSION}_${K_JDK_BUILD_VERSION}.tar.gz + +ENV JAVA_HOME=/opt/${K_JDK_MAJOR_VERSION}+${K_JDK_BUILD_VERSION} +ENV PATH=$PATH:${JAVA_HOME}/bin + ################################################################## # installing java11 ################################################################## -RUN wget --no-check-certificate -O - https://packages.adoptium.net/artifactory/api/gpg/key/public | tee /etc/apt/keyrings/adoptium.asc && \ - echo 'deb [signed-by=/etc/apt/keyrings/adoptium.asc] https://packages.adoptium.net/artifactory/deb bookworm main' > /etc/apt/sources.list.d/temurin-official.list && \ - apt-get update && \ - apt-get autoremove -y && \ - apt-get install -y --allow-unauthenticated temurin-11-jdk temurin-11-jre && \ - mkdir /usr/lib/jvm/temurin-11-jdk-amd64/jre && \ - ln -s /usr/lib/jvm/temurin-11-jdk-amd64/bin/ /usr/lib/jvm/temurin-11-jdk-amd64/jre/bin && \ - ln -s /usr/lib/jvm/temurin-11-jdk-amd64/lib/ /usr/lib/jvm/temurin-11-jdk-amd64/jre/lib && \ +RUN curl --user-agent "Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Firefox/81.0" --location ${K_JDK_URL}?$(date +%s) \ + --header 'Cache-Control: no-cache, no-store' \ + --header 'Pragma: no-cache' | tar xzv --directory /opt && \ java -version ################################################################## diff --git a/linux/ecosystem/epicmorg/debian/12-bookworm/jdk11/Dockerfile.develop b/linux/ecosystem/epicmorg/debian/12-bookworm/jdk11/Dockerfile.develop index 483c8eb34..19b1e6615 100644 --- a/linux/ecosystem/epicmorg/debian/12-bookworm/jdk11/Dockerfile.develop +++ b/linux/ecosystem/epicmorg/debian/12-bookworm/jdk11/Dockerfile.develop @@ -2,17 +2,20 @@ FROM epicmorg/debian:bookworm-develop LABEL maintainer="EpicMorg DevTeam, developer@epicm.org" ARG DEBIAN_FRONTEND=noninteractive +ARG K_JDK_MAJOR_VERSION=jdk-11.0.23 +ARG K_JDK_VERSION=11.0.23 +ARG K_JDK_BUILD_VERSION=9 +ARG K_JDK_URL=https://github.com/adoptium/temurin11-binaries/releases/download/${K_JDK_MAJOR_VERSION}+${K_JDK_BUILD_VERSION}/OpenJDK11U-jdk_x64_linux_hotspot_${K_JDK_VERSION}_${K_JDK_BUILD_VERSION}.tar.gz + +ENV JAVA_HOME=/opt/${K_JDK_MAJOR_VERSION}+${K_JDK_BUILD_VERSION} +ENV PATH=$PATH:${JAVA_HOME}/bin + ################################################################## # installing java11 ################################################################## -RUN wget --no-check-certificate -O - https://packages.adoptium.net/artifactory/api/gpg/key/public | tee /etc/apt/keyrings/adoptium.asc && \ - echo 'deb [signed-by=/etc/apt/keyrings/adoptium.asc] https://packages.adoptium.net/artifactory/deb bookworm main' > /etc/apt/sources.list.d/temurin-official.list && \ - apt-get update && \ - apt-get autoremove -y && \ - apt-get install -y --allow-unauthenticated temurin-11-jdk temurin-11-jre && \ - mkdir /usr/lib/jvm/temurin-11-jdk-amd64/jre && \ - ln -s /usr/lib/jvm/temurin-11-jdk-amd64/bin/ /usr/lib/jvm/temurin-11-jdk-amd64/jre/bin && \ - ln -s /usr/lib/jvm/temurin-11-jdk-amd64/lib/ /usr/lib/jvm/temurin-11-jdk-amd64/jre/lib && \ +RUN curl --user-agent "Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Firefox/81.0" --location ${K_JDK_URL}?$(date +%s) \ + --header 'Cache-Control: no-cache, no-store' \ + --header 'Pragma: no-cache' | tar xzv --directory /opt && \ java -version ################################################################## diff --git a/linux/ecosystem/epicmorg/debian/12-bookworm/jdk17/Dockerfile b/linux/ecosystem/epicmorg/debian/12-bookworm/jdk17/Dockerfile index d0a9677d1..b48e1e694 100644 --- a/linux/ecosystem/epicmorg/debian/12-bookworm/jdk17/Dockerfile +++ b/linux/ecosystem/epicmorg/debian/12-bookworm/jdk17/Dockerfile @@ -2,17 +2,20 @@ FROM epicmorg/debian:bookworm LABEL maintainer="EpicMorg DevTeam, developer@epicm.org" ARG DEBIAN_FRONTEND=noninteractive +ARG K_JDK_MAJOR_VERSION=jdk-17.0.11 +ARG K_JDK_VERSION=17.0.11 +ARG K_JDK_BUILD_VERSION=9 +ARG K_JDK_URL=https://github.com/adoptium/temurin17-binaries/releases/download/${K_JDK_MAJOR_VERSION}+${K_JDK_BUILD_VERSION}/OpenJDK17U-jdk_x64_linux_hotspot_${K_JDK_VERSION}_${K_JDK_BUILD_VERSION}.tar.gz + +ENV JAVA_HOME=/opt/${K_JDK_MAJOR_VERSION}+${K_JDK_BUILD_VERSION} +ENV PATH=$PATH:${JAVA_HOME}/bin + ################################################################## # installing java17 ################################################################## -RUN wget --no-check-certificate -O - https://packages.adoptium.net/artifactory/api/gpg/key/public | tee /etc/apt/keyrings/adoptium.asc && \ - echo 'deb [signed-by=/etc/apt/keyrings/adoptium.asc] https://packages.adoptium.net/artifactory/deb bookworm main' > /etc/apt/sources.list.d/temurin-official.list && \ - apt-get update && \ - apt-get autoremove -y && \ - apt-get install -y --allow-unauthenticated temurin-17-jdk temurin-17-jre && \ - mkdir /usr/lib/jvm/temurin-17-jdk-amd64/jre && \ - ln -s /usr/lib/jvm/temurin-17-jdk-amd64/bin/ /usr/lib/jvm/temurin-17-jdk-amd64/jre/bin && \ - ln -s /usr/lib/jvm/temurin-17-jdk-amd64/lib/ /usr/lib/jvm/temurin-17-jdk-amd64/jre/lib && \ +RUN curl --user-agent "Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Firefox/81.0" --location ${K_JDK_URL}?$(date +%s) \ + --header 'Cache-Control: no-cache, no-store' \ + --header 'Pragma: no-cache' | tar xzv --directory /opt && \ java -version ################################################################## diff --git a/linux/ecosystem/epicmorg/debian/12-bookworm/jdk17/Dockerfile.develop b/linux/ecosystem/epicmorg/debian/12-bookworm/jdk17/Dockerfile.develop index a0a5ec518..54634d7bf 100644 --- a/linux/ecosystem/epicmorg/debian/12-bookworm/jdk17/Dockerfile.develop +++ b/linux/ecosystem/epicmorg/debian/12-bookworm/jdk17/Dockerfile.develop @@ -2,17 +2,20 @@ FROM epicmorg/debian:bookworm-develop LABEL maintainer="EpicMorg DevTeam, developer@epicm.org" ARG DEBIAN_FRONTEND=noninteractive +ARG K_JDK_MAJOR_VERSION=jdk-17.0.11 +ARG K_JDK_VERSION=17.0.11 +ARG K_JDK_BUILD_VERSION=9 +ARG K_JDK_URL=https://github.com/adoptium/temurin17-binaries/releases/download/${K_JDK_MAJOR_VERSION}+${K_JDK_BUILD_VERSION}/OpenJDK17U-jdk_x64_linux_hotspot_${K_JDK_VERSION}_${K_JDK_BUILD_VERSION}.tar.gz + +ENV JAVA_HOME=/opt/${K_JDK_MAJOR_VERSION}+${K_JDK_BUILD_VERSION} +ENV PATH=$PATH:${JAVA_HOME}/bin + ################################################################## # installing java17 ################################################################## -RUN wget --no-check-certificate -O - https://packages.adoptium.net/artifactory/api/gpg/key/public | tee /etc/apt/keyrings/adoptium.asc && \ - echo 'deb [signed-by=/etc/apt/keyrings/adoptium.asc] https://packages.adoptium.net/artifactory/deb bookworm main' > /etc/apt/sources.list.d/temurin-official.list && \ - apt-get update && \ - apt-get autoremove -y && \ - apt-get install -y --allow-unauthenticated temurin-17-jdk temurin-17-jre && \ - mkdir /usr/lib/jvm/temurin-17-jdk-amd64/jre && \ - ln -s /usr/lib/jvm/temurin-17-jdk-amd64/bin/ /usr/lib/jvm/temurin-17-jdk-amd64/jre/bin && \ - ln -s /usr/lib/jvm/temurin-17-jdk-amd64/lib/ /usr/lib/jvm/temurin-17-jdk-amd64/jre/lib && \ +RUN curl --user-agent "Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Firefox/81.0" --location ${K_JDK_URL}?$(date +%s) \ + --header 'Cache-Control: no-cache, no-store' \ + --header 'Pragma: no-cache' | tar xzv --directory /opt && \ java -version ################################################################## diff --git a/linux/ecosystem/epicmorg/debian/12-bookworm/jdk20/Dockerfile b/linux/ecosystem/epicmorg/debian/12-bookworm/jdk20/Dockerfile index c55166139..6a9775c59 100644 --- a/linux/ecosystem/epicmorg/debian/12-bookworm/jdk20/Dockerfile +++ b/linux/ecosystem/epicmorg/debian/12-bookworm/jdk20/Dockerfile @@ -2,17 +2,20 @@ FROM epicmorg/debian:bookworm LABEL maintainer="EpicMorg DevTeam, developer@epicm.org" ARG DEBIAN_FRONTEND=noninteractive +ARG K_JDK_MAJOR_VERSION=jdk-20.0.2 +ARG K_JDK_VERSION=20.0.2 +ARG K_JDK_BUILD_VERSION=9 +ARG K_JDK_URL=https://github.com/adoptium/temurin20-binaries/releases/download/${K_JDK_MAJOR_VERSION}+${K_JDK_BUILD_VERSION}/OpenJDK20U-jdk_x64_linux_hotspot_${K_JDK_VERSION}_${K_JDK_BUILD_VERSION}.tar.gz + +ENV JAVA_HOME=/opt/${K_JDK_MAJOR_VERSION}+${K_JDK_BUILD_VERSION} +ENV PATH=$PATH:${JAVA_HOME}/bin + ################################################################## # installing java20 ################################################################## -RUN wget --no-check-certificate -O - https://packages.adoptium.net/artifactory/api/gpg/key/public | tee /etc/apt/keyrings/adoptium.asc && \ - echo 'deb [signed-by=/etc/apt/keyrings/adoptium.asc] https://packages.adoptium.net/artifactory/deb bookworm main' > /etc/apt/sources.list.d/temurin-official.list && \ - apt-get update && \ - apt-get autoremove -y && \ - apt-get install -y --allow-unauthenticated temurin-20-jdk temurin-20-jre && \ - mkdir /usr/lib/jvm/temurin-20-jdk-amd64/jre && \ - ln -s /usr/lib/jvm/temurin-20-jdk-amd64/bin/ /usr/lib/jvm/temurin-20-jdk-amd64/jre/bin && \ - ln -s /usr/lib/jvm/temurin-20-jdk-amd64/lib/ /usr/lib/jvm/temurin-20-jdk-amd64/jre/lib && \ +RUN curl --user-agent "Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Firefox/81.0" --location ${K_JDK_URL}?$(date +%s) \ + --header 'Cache-Control: no-cache, no-store' \ + --header 'Pragma: no-cache' | tar xzv --directory /opt && \ java -version ################################################################## diff --git a/linux/ecosystem/epicmorg/debian/12-bookworm/jdk20/Dockerfile.develop b/linux/ecosystem/epicmorg/debian/12-bookworm/jdk20/Dockerfile.develop index 2114c2039..a4e3243d8 100644 --- a/linux/ecosystem/epicmorg/debian/12-bookworm/jdk20/Dockerfile.develop +++ b/linux/ecosystem/epicmorg/debian/12-bookworm/jdk20/Dockerfile.develop @@ -2,17 +2,20 @@ FROM epicmorg/debian:bookworm-develop LABEL maintainer="EpicMorg DevTeam, developer@epicm.org" ARG DEBIAN_FRONTEND=noninteractive +ARG K_JDK_MAJOR_VERSION=jdk-20.0.2 +ARG K_JDK_VERSION=20.0.2 +ARG K_JDK_BUILD_VERSION=9 +ARG K_JDK_URL=https://github.com/adoptium/temurin20-binaries/releases/download/${K_JDK_MAJOR_VERSION}+${K_JDK_BUILD_VERSION}/OpenJDK20U-jdk_x64_linux_hotspot_${K_JDK_VERSION}_${K_JDK_BUILD_VERSION}.tar.gz + +ENV JAVA_HOME=/opt/${K_JDK_MAJOR_VERSION}+${K_JDK_BUILD_VERSION} +ENV PATH=$PATH:${JAVA_HOME}/bin + ################################################################## # installing java20 ################################################################## -RUN wget --no-check-certificate -O - https://packages.adoptium.net/artifactory/api/gpg/key/public | tee /etc/apt/keyrings/adoptium.asc && \ - echo 'deb [signed-by=/etc/apt/keyrings/adoptium.asc] https://packages.adoptium.net/artifactory/deb bookworm main' > /etc/apt/sources.list.d/temurin-official.list && \ - apt-get update && \ - apt-get autoremove -y && \ - apt-get install -y --allow-unauthenticated temurin-20-jdk temurin-20-jre && \ - mkdir /usr/lib/jvm/temurin-20-jdk-amd64/jre && \ - ln -s /usr/lib/jvm/temurin-20-jdk-amd64/bin/ /usr/lib/jvm/temurin-20-jdk-amd64/jre/bin && \ - ln -s /usr/lib/jvm/temurin-20-jdk-amd64/lib/ /usr/lib/jvm/temurin-20-jdk-amd64/jre/lib && \ +RUN curl --user-agent "Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Firefox/81.0" --location ${K_JDK_URL}?$(date +%s) \ + --header 'Cache-Control: no-cache, no-store' \ + --header 'Pragma: no-cache' | tar xzv --directory /opt && \ java -version ################################################################## diff --git a/linux/ecosystem/epicmorg/debian/12-bookworm/jdk21/Dockerfile b/linux/ecosystem/epicmorg/debian/12-bookworm/jdk21/Dockerfile index 8e4115179..761327532 100644 --- a/linux/ecosystem/epicmorg/debian/12-bookworm/jdk21/Dockerfile +++ b/linux/ecosystem/epicmorg/debian/12-bookworm/jdk21/Dockerfile @@ -2,17 +2,20 @@ FROM epicmorg/debian:bookworm LABEL maintainer="EpicMorg DevTeam, developer@epicm.org" ARG DEBIAN_FRONTEND=noninteractive +ARG K_JDK_MAJOR_VERSION=jdk-21.0.3 +ARG K_JDK_VERSION=21.0.3 +ARG K_JDK_BUILD_VERSION=9 +ARG K_JDK_URL=https://github.com/adoptium/temurin21-binaries/releases/download/${K_JDK_MAJOR_VERSION}+${K_JDK_BUILD_VERSION}/OpenJDK21U-jdk_x64_linux_hotspot_${K_JDK_VERSION}_${K_JDK_BUILD_VERSION}.tar.gz + +ENV JAVA_HOME=/opt/${K_JDK_MAJOR_VERSION}+${K_JDK_BUILD_VERSION} +ENV PATH=$PATH:${JAVA_HOME}/bin + ################################################################## -# installing java20 +# installing java21 ################################################################## -RUN wget --no-check-certificate -O - https://packages.adoptium.net/artifactory/api/gpg/key/public | tee /etc/apt/keyrings/adoptium.asc && \ - echo 'deb [signed-by=/etc/apt/keyrings/adoptium.asc] https://packages.adoptium.net/artifactory/deb bookworm main' > /etc/apt/sources.list.d/temurin-official.list && \ - apt-get update && \ - apt-get autoremove -y && \ - apt-get install -y --allow-unauthenticated temurin-21-jdk temurin-21-jre && \ - mkdir /usr/lib/jvm/temurin-21-jdk-amd64/jre && \ - ln -s /usr/lib/jvm/temurin-21-jdk-amd64/bin/ /usr/lib/jvm/temurin-21-jdk-amd64/jre/bin && \ - ln -s /usr/lib/jvm/temurin-21-jdk-amd64/lib/ /usr/lib/jvm/temurin-21-jdk-amd64/jre/lib && \ +RUN curl --user-agent "Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Firefox/81.0" --location ${K_JDK_URL}?$(date +%s) \ + --header 'Cache-Control: no-cache, no-store' \ + --header 'Pragma: no-cache' | tar xzv --directory /opt && \ java -version ################################################################## diff --git a/linux/ecosystem/epicmorg/debian/12-bookworm/jdk21/Dockerfile.develop b/linux/ecosystem/epicmorg/debian/12-bookworm/jdk21/Dockerfile.develop index edf019618..610c31c61 100644 --- a/linux/ecosystem/epicmorg/debian/12-bookworm/jdk21/Dockerfile.develop +++ b/linux/ecosystem/epicmorg/debian/12-bookworm/jdk21/Dockerfile.develop @@ -2,17 +2,20 @@ FROM epicmorg/debian:bookworm-develop LABEL maintainer="EpicMorg DevTeam, developer@epicm.org" ARG DEBIAN_FRONTEND=noninteractive +ARG K_JDK_MAJOR_VERSION=jdk-21.0.3 +ARG K_JDK_VERSION=21.0.3 +ARG K_JDK_BUILD_VERSION=9 +ARG K_JDK_URL=https://github.com/adoptium/temurin21-binaries/releases/download/${K_JDK_MAJOR_VERSION}+${K_JDK_BUILD_VERSION}/OpenJDK21U-jdk_x64_linux_hotspot_${K_JDK_VERSION}_${K_JDK_BUILD_VERSION}.tar.gz + +ENV JAVA_HOME=/opt/${K_JDK_MAJOR_VERSION}+${K_JDK_BUILD_VERSION} +ENV PATH=$PATH:${JAVA_HOME}/bin + ################################################################## -# installing java20 +# installing java21 ################################################################## -RUN wget --no-check-certificate -O - https://packages.adoptium.net/artifactory/api/gpg/key/public | tee /etc/apt/keyrings/adoptium.asc && \ - echo 'deb [signed-by=/etc/apt/keyrings/adoptium.asc] https://packages.adoptium.net/artifactory/deb bookworm main' > /etc/apt/sources.list.d/temurin-official.list && \ - apt-get update && \ - apt-get autoremove -y && \ - apt-get install -y --allow-unauthenticated temurin-21-jdk temurin-20-jre && \ - mkdir /usr/lib/jvm/temurin-21-jdk-amd64/jre && \ - ln -s /usr/lib/jvm/temurin-21-jdk-amd64/bin/ /usr/lib/jvm/temurin-21-jdk-amd64/jre/bin && \ - ln -s /usr/lib/jvm/temurin-21-jdk-amd64/lib/ /usr/lib/jvm/temurin-21-jdk-amd64/jre/lib && \ +RUN curl --user-agent "Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Firefox/81.0" --location ${K_JDK_URL}?$(date +%s) \ + --header 'Cache-Control: no-cache, no-store' \ + --header 'Pragma: no-cache' | tar xzv --directory /opt && \ java -version ################################################################## diff --git a/linux/ecosystem/epicmorg/debian/12-bookworm/jdk8/Dockerfile b/linux/ecosystem/epicmorg/debian/12-bookworm/jdk8/Dockerfile index 62ed19e1e..4590418af 100644 --- a/linux/ecosystem/epicmorg/debian/12-bookworm/jdk8/Dockerfile +++ b/linux/ecosystem/epicmorg/debian/12-bookworm/jdk8/Dockerfile @@ -2,14 +2,20 @@ FROM epicmorg/debian:bookworm LABEL maintainer="EpicMorg DevTeam, developer@epicm.org" ARG DEBIAN_FRONTEND=noninteractive +ARG K_JDK_MAJOR_VERSION=jdk8u412 +ARG K_JDK_VERSION=8u412 +ARG K_JDK_BUILD_VERSION=b08 +ARG K_JDK_URL=https://github.com/adoptium/temurin8-binaries/releases/download/${K_JDK_MAJOR_VERSION}-${K_JDK_BUILD_VERSION}/OpenJDK8U-jdk_x64_linux_hotspot_${K_JDK_VERSION}${K_JDK_BUILD_VERSION}.tar.gz + +ENV JAVA_HOME=/opt/${K_JDK_MAJOR_VERSION}-${K_JDK_BUILD_VERSION} +ENV PATH=$PATH:${JAVA_HOME}/bin + ################################################################## # installing java8 ################################################################## -RUN wget --no-check-certificate -O - https://packages.adoptium.net/artifactory/api/gpg/key/public | tee /etc/apt/keyrings/adoptium.asc && \ - echo 'deb [signed-by=/etc/apt/keyrings/adoptium.asc] https://packages.adoptium.net/artifactory/deb bookworm main' > /etc/apt/sources.list.d/temurin-official.list && \ - apt-get update && \ - apt-get autoremove -y && \ - apt-get install -y --allow-unauthenticated temurin-8-jdk temurin-8-jre && \ +RUN curl --user-agent "Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Firefox/81.0" --location ${K_JDK_URL}?$(date +%s) \ + --header 'Cache-Control: no-cache, no-store' \ + --header 'Pragma: no-cache' | tar xzv --directory /opt && \ java -version ################################################################## diff --git a/linux/ecosystem/epicmorg/debian/12-bookworm/jdk8/Dockerfile.develop b/linux/ecosystem/epicmorg/debian/12-bookworm/jdk8/Dockerfile.develop index ae82ca5e4..a4ccf9ac2 100644 --- a/linux/ecosystem/epicmorg/debian/12-bookworm/jdk8/Dockerfile.develop +++ b/linux/ecosystem/epicmorg/debian/12-bookworm/jdk8/Dockerfile.develop @@ -2,14 +2,20 @@ FROM epicmorg/debian:bookworm-develop LABEL maintainer="EpicMorg DevTeam, developer@epicm.org" ARG DEBIAN_FRONTEND=noninteractive +ARG K_JDK_MAJOR_VERSION=jdk8u412 +ARG K_JDK_VERSION=8u412 +ARG K_JDK_BUILD_VERSION=b08 +ARG K_JDK_URL=https://github.com/adoptium/temurin8-binaries/releases/download/${K_JDK_MAJOR_VERSION}-${K_JDK_BUILD_VERSION}/OpenJDK8U-jdk_x64_linux_hotspot_${K_JDK_VERSION}${K_JDK_BUILD_VERSION}.tar.gz + +ENV JAVA_HOME=/opt/${K_JDK_MAJOR_VERSION}-${K_JDK_BUILD_VERSION} +ENV PATH=$PATH:${JAVA_HOME}/bin + ################################################################## # installing java8 ################################################################## -RUN wget --no-check-certificate -O - https://packages.adoptium.net/artifactory/api/gpg/key/public | tee /etc/apt/keyrings/adoptium.asc && \ - echo 'deb [signed-by=/etc/apt/keyrings/adoptium.asc] https://packages.adoptium.net/artifactory/deb bookworm main' > /etc/apt/sources.list.d/temurin-official.list && \ - apt-get update && \ - apt-get autoremove -y && \ - apt-get install -y --allow-unauthenticated temurin-8-jdk temurin-8-jre && \ +RUN curl --user-agent "Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Firefox/81.0" --location ${K_JDK_URL}?$(date +%s) \ + --header 'Cache-Control: no-cache, no-store' \ + --header 'Pragma: no-cache' | tar xzv --directory /opt && \ java -version ################################################################## diff --git a/linux/ecosystem/gitlab/runner/android-sdk/jdk11/Dockerfile b/linux/ecosystem/gitlab/runner/android-sdk/jdk11/Dockerfile index 3d4f94f05..e96d417bb 100644 --- a/linux/ecosystem/gitlab/runner/android-sdk/jdk11/Dockerfile +++ b/linux/ecosystem/gitlab/runner/android-sdk/jdk11/Dockerfile @@ -2,23 +2,25 @@ FROM epicmorg/gitlab-runner:latest LABEL maintainer="EpicMorg DevTeam, developer@epicm.org" ARG DEBIAN_FRONTEND=noninteractive +ARG K_JDK_MAJOR_VERSION=jdk-11.0.23 +ARG K_JDK_VERSION=11.0.23 +ARG K_JDK_BUILD_VERSION=9 +ARG K_JDK_URL=https://github.com/adoptium/temurin11-binaries/releases/download/${K_JDK_MAJOR_VERSION}+${K_JDK_BUILD_VERSION}/OpenJDK11U-jdk_x64_linux_hotspot_${K_JDK_VERSION}_${K_JDK_BUILD_VERSION}.tar.gz + ENV ANDROID_HOME=/usr/lib/android-sdk ENV ANDROID_SDK_ROOT=/usr/lib/android-sdk +ENV JAVA_HOME=/opt/${K_JDK_MAJOR_VERSION}+${K_JDK_BUILD_VERSION} -ENV PATH=$PATH:${ANDROID_SDK_ROOT}/cmdline-tools/latest/bin:${ANDROID_SDK_ROOT}/platform-tools:$ANDROID_SDK_ROOT/tools/bin +ENV PATH=$PATH:${JAVA_HOME}/bin:${ANDROID_SDK_ROOT}/cmdline-tools/latest/bin:${ANDROID_SDK_ROOT}/platform-tools:$ANDROID_SDK_ROOT/tools/bin ################################################################## # installing java11 ################################################################## -RUN wget -qO - https://packages.adoptium.net/artifactory/api/gpg/key/public | apt-key add - && \ - echo 'deb https://packages.adoptium.net/artifactory/deb bullseye main' > /etc/apt/sources.list.d/temurin-official.list && \ - apt-get update && \ - apt-get autoremove -y && \ - apt-get install -y --allow-unauthenticated temurin-11-jdk && \ - mkdir /usr/lib/jvm/temurin-11-jdk-amd64/jre && \ - ln -s /usr/lib/jvm/temurin-11-jdk-amd64/bin/ /usr/lib/jvm/temurin-11-jdk-amd64/jre/bin && \ - ln -s /usr/lib/jvm/temurin-11-jdk-amd64/lib/ /usr/lib/jvm/temurin-11-jdk-amd64/jre/lib && \ +RUN curl --user-agent "Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Firefox/81.0" --location ${K_JDK_URL}?$(date +%s) \ + --header 'Cache-Control: no-cache, no-store' \ + --header 'Pragma: no-cache' | tar xzv --directory /opt && \ java -version + ################################################################## # Additional settings ################################################################## diff --git a/linux/ecosystem/gitlab/runner/android-sdk/jdk17/Dockerfile b/linux/ecosystem/gitlab/runner/android-sdk/jdk17/Dockerfile index 9e7bf1a28..7e94ad6f2 100644 --- a/linux/ecosystem/gitlab/runner/android-sdk/jdk17/Dockerfile +++ b/linux/ecosystem/gitlab/runner/android-sdk/jdk17/Dockerfile @@ -2,22 +2,23 @@ FROM epicmorg/gitlab-runner:latest LABEL maintainer="EpicMorg DevTeam, developer@epicm.org" ARG DEBIAN_FRONTEND=noninteractive +ARG K_JDK_MAJOR_VERSION=jdk-17.0.11 +ARG K_JDK_VERSION=17.0.11 +ARG K_JDK_BUILD_VERSION=9 +ARG K_JDK_URL=https://github.com/adoptium/temurin17-binaries/releases/download/${K_JDK_MAJOR_VERSION}+${K_JDK_BUILD_VERSION}/OpenJDK17U-jdk_x64_linux_hotspot_${K_JDK_VERSION}_${K_JDK_BUILD_VERSION}.tar.gz + ENV ANDROID_HOME=/usr/lib/android-sdk ENV ANDROID_SDK_ROOT=/usr/lib/android-sdk +ENV JAVA_HOME=/opt/${K_JDK_MAJOR_VERSION}+${K_JDK_BUILD_VERSION} -ENV PATH=$PATH:${ANDROID_SDK_ROOT}/cmdline-tools/latest/bin:${ANDROID_SDK_ROOT}/platform-tools:$ANDROID_SDK_ROOT/tools/bin +ENV PATH=$PATH:${JAVA_HOME}/bin:${ANDROID_SDK_ROOT}/cmdline-tools/latest/bin:${ANDROID_SDK_ROOT}/platform-tools:$ANDROID_SDK_ROOT/tools/bin ################################################################## # installing java17 ################################################################## -RUN wget -qO - https://packages.adoptium.net/artifactory/api/gpg/key/public | apt-key add - && \ - echo 'deb https://packages.adoptium.net/artifactory/deb bullseye main' > /etc/apt/sources.list.d/temurin-official.list && \ - apt-get update && \ - apt-get autoremove -y && \ - apt-get install -y --allow-unauthenticated temurin-17-jdk && \ - mkdir /usr/lib/jvm/temurin-17-jdk-amd64/jre && \ - ln -s /usr/lib/jvm/temurin-17-jdk-amd64/bin/ /usr/lib/jvm/temurin-17-jdk-amd64/jre/bin && \ - ln -s /usr/lib/jvm/temurin-17-jdk-amd64/lib/ /usr/lib/jvm/temurin-17-jdk-amd64/jre/lib && \ +RUN curl --user-agent "Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Firefox/81.0" --location ${K_JDK_URL}?$(date +%s) \ + --header 'Cache-Control: no-cache, no-store' \ + --header 'Pragma: no-cache' | tar xzv --directory /opt && \ java -version ################################################################## diff --git a/linux/ecosystem/gitlab/runner/android-sdk/jdk8/Dockerfile b/linux/ecosystem/gitlab/runner/android-sdk/jdk8/Dockerfile new file mode 100644 index 000000000..b19f56180 --- /dev/null +++ b/linux/ecosystem/gitlab/runner/android-sdk/jdk8/Dockerfile @@ -0,0 +1,623 @@ +FROM epicmorg/gitlab-runner:latest +LABEL maintainer="EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +ARG K_JDK_MAJOR_VERSION=jdk8u412 +ARG K_JDK_VERSION=8u412 +ARG K_JDK_BUILD_VERSION=b08 +ARG K_JDK_URL=https://github.com/adoptium/temurin8-binaries/releases/download/${K_JDK_MAJOR_VERSION}-${K_JDK_BUILD_VERSION}/OpenJDK8U-jdk_x64_linux_hotspot_${K_JDK_VERSION}${K_JDK_BUILD_VERSION}.tar.gz + +ENV ANDROID_HOME=/usr/lib/android-sdk +ENV ANDROID_SDK_ROOT=/usr/lib/android-sdk +ENV JAVA_HOME=/opt/${K_JDK_MAJOR_VERSION}-${K_JDK_BUILD_VERSION} + +ENV PATH=$PATH:${JAVA_HOME}/bin:${ANDROID_SDK_ROOT}/cmdline-tools/latest/bin:${ANDROID_SDK_ROOT}/platform-tools:$ANDROID_SDK_ROOT/tools/bin + +################################################################## +# installing java8 +################################################################## +RUN curl --user-agent "Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Firefox/81.0" --location ${K_JDK_URL}?$(date +%s) \ + --header 'Cache-Control: no-cache, no-store' \ + --header 'Pragma: no-cache' | tar xzv --directory /opt && \ + java -version + +################################################################## +# Additional settings +################################################################## +ENV MAVEN_VERSION=3.9.6 +ENV MAVEN_LINK=https://dlcdn.apache.org/maven/maven-3/${MAVEN_VERSION}/binaries/apache-maven-${MAVEN_VERSION}-bin.zip +ENV MAVEN_ROOT=/opt/maven +ENV MAVEN_PATH=${MAVEN_ROOT}/apache-maven-${MAVEN_VERSION} +ENV MAVEN_BIN=${MAVEN_PATH}/bin +ARG MAVEN_TEMP=/tmp/MAVEN.zip + +ENV GRADLE_VERSION=8.6 +ENV GRADLE_LINK=https://services.gradle.org/distributions/gradle-${GRADLE_VERSION}-all.zip +ENV GRADLE_ROOT=/opt/gradle +ENV GRADLE_PATH=${GRADLE_ROOT}/gradle-${GRADLE_VERSION} +ENV GRADLE_BIN=${GRADLE_PATH}/bin +ARG GRADLE_TEMP=/tmp/gradle.zip + +ENV KTC_VERSION=1.9.22 +ENV KTC_LINK=https://github.com/JetBrains/kotlin/releases/download/v${KTC_VERSION}/kotlin-compiler-${KTC_VERSION}.zip +ARG KTC_TEMP=/tmp/kotlinc.zip +ENV KTC_ROOT=/opt/kotlin +ENV KTC_PATH=${KTC_ROOT}/kotlinc +ENV KTC_BIN=${KTC_PATH}/bin + +RUN mkdir -p ${MAVEN_PATH} ${KTC_PATH} ${GRADLE_PATH} +ENV PATH=${PATH}:${MAVEN_BIN}:${GRADLE_BIN}:${KTC_BIN} + +################################################################## +# Maven +################################################################## +ENV MAVEN_HOME=${MAVEN_ROOT} +ENV M2_HOME=${MAVEN_ROOT} + +RUN curl --insecure --progress-bar -L -o ${MAVEN_TEMP} --retry 10 --retry-delay 0 ${MAVEN_LINK} +RUN 7zz x ${MAVEN_TEMP} -o${MAVEN_ROOT} +RUN chmod +x -R ${MAVEN_BIN} +RUN mvn -v + +################################################################## +# GRADLE +################################################################## +RUN curl --insecure --progress-bar -L -o ${GRADLE_TEMP} --retry 10 --retry-delay 0 ${GRADLE_LINK} +RUN 7zz x ${GRADLE_TEMP} -o${GRADLE_ROOT} +RUN chmod +x -R ${GRADLE_BIN} +RUN gradle -v + +################################################################## +# KOTLIN +################################################################## +RUN curl --insecure --progress-bar -L -o ${KTC_TEMP} --retry 10 --retry-delay 0 ${KTC_LINK} +RUN 7zz x $KTC_TEMP -o${KTC_ROOT} +RUN chmod +x -R ${KTC_BIN} +RUN kotlin -version + +################################################################## +# Android SDK +################################################################## +RUN apt update && \ + apt install -y --allow-unauthenticated \ + maven \ + android-sdk \ + sdkmanager \ + android-sdk-build-tools \ + android-sdk-platform-tools-common \ + android-sdk-platform-tools \ + adb fastboot f2fs-tools e2fsprogs libsqlite3-0 sqlite3 && \ + apt remove -y gradle && \ + sdkmanager --version && \ + mvn -v + +# Install ALL ANDROID SDK +RUN sdkmanager --install \ + "build-tools;17.0.0" \ + "build-tools;18.0.0" \ + "build-tools;18.0.1" \ + "build-tools;18.1.0" \ + "build-tools;18.1.1" \ + "build-tools;19.0.0" \ + "build-tools;19.0.1" \ + "build-tools;19.0.2" \ + "build-tools;19.0.3" \ + "build-tools;19.1.0" \ + "build-tools;20.0.0" \ + "build-tools;21.0.0" \ + "build-tools;21.0.1" \ + "build-tools;21.0.2" \ + "build-tools;21.1.0" \ + "build-tools;21.1.1" \ + "build-tools;21.1.2" \ + "build-tools;22.0.0" \ + "build-tools;22.0.1" \ + "build-tools;23.0.0" \ + "build-tools;23.0.1" \ + "build-tools;23.0.2" \ + "build-tools;23.0.3" \ + "build-tools;24.0.0" \ + "build-tools;24.0.1" \ + "build-tools;24.0.2" \ + "build-tools;24.0.3" \ + "build-tools;25.0.0" \ + "build-tools;25.0.1" \ + "build-tools;25.0.2" \ + "build-tools;25.0.3" \ + "build-tools;26.0.0" \ + "build-tools;26.0.0-rc1" \ + "build-tools;26.0.0-rc2" \ + "build-tools;26.0.1" \ + "build-tools;26.0.2" \ + "build-tools;26.0.3" \ + "build-tools;27.0.0" \ + "build-tools;27.0.1" \ + "build-tools;27.0.2" \ + "build-tools;27.0.3" \ + "build-tools;28.0.0" \ + "build-tools;28.0.0-rc1" \ + "build-tools;28.0.0-rc2" \ + "build-tools;28.0.1" \ + "build-tools;28.0.2" \ + "build-tools;28.0.3" \ + "build-tools;29.0.0" \ + "build-tools;29.0.0-rc1" \ + "build-tools;29.0.0-rc2" \ + "build-tools;29.0.0-rc3" \ + "build-tools;29.0.1" \ + "build-tools;29.0.2" \ + "build-tools;29.0.3" \ + "build-tools;30.0.0" \ + "build-tools;30.0.0-rc1" \ + "build-tools;30.0.0-rc2" \ + "build-tools;30.0.0-rc3" \ + "build-tools;30.0.0-rc4" \ + "build-tools;30.0.1" \ + "build-tools;30.0.2" \ + "build-tools;30.0.3" \ + "build-tools;31.0.0" \ + "build-tools;31.0.0-rc1" \ + "build-tools;31.0.0-rc2" \ + "build-tools;31.0.0-rc3" \ + "build-tools;31.0.0-rc4" \ + "build-tools;31.0.0-rc5" \ + "build-tools;32.0.0" \ + "build-tools;32.1.0-rc1" \ + "build-tools;33.0.0" \ + "build-tools;33.0.0-rc1" \ + "build-tools;33.0.0-rc2" \ + "build-tools;33.0.0-rc3" \ + "build-tools;33.0.0-rc4" \ + "build-tools;33.0.1" \ + "build-tools;33.0.2" \ + "build-tools;34.0.0" \ + "build-tools;34.0.0-rc1" \ + "build-tools;34.0.0-rc2" \ + "build-tools;34.0.0-rc3" \ + "build-tools;34.0.0-rc4" + + +RUN sdkmanager --install \ + "cmake;3.10.2.4988404" \ + "cmake;3.18.1" \ + "cmake;3.22.1" \ + "cmake;3.6.4111459" + +RUN sdkmanager --install \ + "cmdline-tools;1.0" \ + "cmdline-tools;1.0-alpha01" \ + "cmdline-tools;10.0-beta04" \ + "cmdline-tools;11.0-alpha07" \ + "cmdline-tools;2.0" \ + "cmdline-tools;2.0-rc01" \ + "cmdline-tools;2.1" \ + "cmdline-tools;3.0" \ + "cmdline-tools;3.0-beta01" \ + "cmdline-tools;4.0" \ + "cmdline-tools;4.0-alpha02" \ + "cmdline-tools;4.0-beta01" \ + "cmdline-tools;5.0" \ + "cmdline-tools;5.0-alpha01" \ + "cmdline-tools;6.0" \ + "cmdline-tools;7.0" \ + "cmdline-tools;8.0" \ + "cmdline-tools;9.0" \ + "cmdline-tools;latest" + +RUN sdkmanager --install \ + "extras;android;m2repository" \ + "extras;android;m2repository;01" \ + "extras;android;m2repository;02" \ + "extras;android;m2repository;03" \ + "extras;android;m2repository;04" \ + "extras;android;m2repository;06" \ + "extras;android;m2repository;07" \ + "extras;android;m2repository;08" \ + "extras;android;m2repository;09" \ + "extras;android;m2repository;1" \ + "extras;android;m2repository;10" \ + "extras;android;m2repository;11" \ + "extras;android;m2repository;12" \ + "extras;android;m2repository;13" \ + "extras;android;m2repository;14" \ + "extras;android;m2repository;15" \ + "extras;android;m2repository;16" \ + "extras;android;m2repository;17" \ + "extras;android;m2repository;18" \ + "extras;android;m2repository;19" \ + "extras;android;m2repository;2" \ + "extras;android;m2repository;20" \ + "extras;android;m2repository;21" \ + "extras;android;m2repository;22" \ + "extras;android;m2repository;23" \ + "extras;android;m2repository;24" \ + "extras;android;m2repository;25" \ + "extras;android;m2repository;26" \ + "extras;android;m2repository;27" \ + "extras;android;m2repository;28" \ + "extras;android;m2repository;29" \ + "extras;android;m2repository;3" \ + "extras;android;m2repository;30" \ + "extras;android;m2repository;31" \ + "extras;android;m2repository;32" \ + "extras;android;m2repository;33" \ + "extras;android;m2repository;34" \ + "extras;android;m2repository;35" \ + "extras;android;m2repository;36" \ + "extras;android;m2repository;37" \ + "extras;android;m2repository;38" \ + "extras;android;m2repository;39" \ + "extras;android;m2repository;4" \ + "extras;android;m2repository;40" \ + "extras;android;m2repository;41" \ + "extras;android;m2repository;42" \ + "extras;android;m2repository;43" \ + "extras;android;m2repository;44" \ + "extras;android;m2repository;45" \ + "extras;android;m2repository;46" \ + "extras;android;m2repository;47" \ + "extras;android;m2repository;6" \ + "extras;android;m2repository;7" \ + "extras;android;m2repository;8" \ + "extras;android;m2repository;9" + +RUN sdkmanager --install \ + "platform-tools" \ + "platform-tools;24.0.0" \ + "platform-tools;29.0.5" \ + "platform-tools;29.0.6" \ + "platform-tools;30.0.0" \ + "platform-tools;30.0.1" \ + "platform-tools;30.0.2" \ + "platform-tools;30.0.3" \ + "platform-tools;30.0.4" \ + "platform-tools;30.0.5" \ + "platform-tools;31.0.0" \ + "platform-tools;31.0.1" \ + "platform-tools;31.0.2" \ + "platform-tools;31.0.3" \ + "platform-tools;32.0.0" \ + "platform-tools;33.0.0" \ + "platform-tools;33.0.1" \ + "platform-tools;33.0.2" \ + "platform-tools;33.0.3" \ + "platform-tools;34.0.0" \ + "platform-tools;34.0.1" \ + "platform-tools;34.0.3" + +RUN sdkmanager --install \ + "platforms;android-10" \ + "platforms;android-11" \ + "platforms;android-12" \ + "platforms;android-13" \ + "platforms;android-14" \ + "platforms;android-15" \ + "platforms;android-16" \ + "platforms;android-17" \ + "platforms;android-18" \ + "platforms;android-19" \ + "platforms;android-20" \ + "platforms;android-21" \ + "platforms;android-22" \ + "platforms;android-23" \ + "platforms;android-24" \ + "platforms;android-25" \ + "platforms;android-26" \ + "platforms;android-27" \ + "platforms;android-28" \ + "platforms;android-29" \ + "platforms;android-3" \ + "platforms;android-30" \ + "platforms;android-31" \ + "platforms;android-32" \ + "platforms;android-33" \ + "platforms;android-34" \ + "platforms;android-4" \ + "platforms;android-5" \ + "platforms;android-6" \ + "platforms;android-7" \ + "platforms;android-8" \ + "platforms;android-9" + +RUN sdkmanager --install \ +# "ndk-bundle;11.0.2655954" \ +# "ndk-bundle;11.1.2683735" \ +# "ndk-bundle;11.2.2725575" \ +# "ndk-bundle;12.0.2931149" \ +# "ndk-bundle;12.1.2977051" \ +# "ndk-bundle;13.0.3315539" \ +# "ndk-bundle;13.1.3345770" \ +# "ndk-bundle;14.0.3770861" \ +# "ndk-bundle;14.1.3816874" \ +# "ndk-bundle;15.0.4075724" \ +# "ndk-bundle;15.1.4119039" \ +# "ndk-bundle;15.2.4203891" \ +# "ndk-bundle;16.0.4442984" \ +# "ndk-bundle;16.1.4479499" \ +# "ndk-bundle;17.0.4754217" \ +# "ndk-bundle;17.1.4828580" \ +# "ndk-bundle;17.2.4988734" \ +# "ndk-bundle;18.1.5063045" \ +# "ndk-bundle;19.0.5232133" \ +# "ndk-bundle;19.1.5304403" \ +# "ndk-bundle;19.2.5345600" \ +# "ndk-bundle;20.0.5392854-beta2" \ +# "ndk-bundle;20.0.5471264-beta3" \ +# "ndk-bundle;20.0.5594570" \ +# "ndk-bundle;20.1.5948944" \ +# "ndk-bundle;21.0.6011959-beta2" \ +# "ndk-bundle;21.0.6113669" \ +# "ndk-bundle;21.1.6210238-beta1" \ +# "ndk-bundle;21.1.6273396-beta2" \ +# "ndk-bundle;21.1.6352462" \ +# "ndk-bundle;21.1.6363665-beta3" \ +# "ndk-bundle;21.2.6472646" \ +# "ndk-bundle;21.3.6528147" \ +# "ndk-bundle;21.4.7075529" \ +# "ndk-bundle;22.0.6917172-beta1" \ +# "ndk-bundle;22.0.7026061" \ +# "ndk-bundle;22.1.7171670" \ +# "ndk-bundle;23.0.7123448-beta1" \ +# "ndk-bundle;23.0.7196353-beta2" \ +# "ndk-bundle;23.0.7272597-beta3" \ +# "ndk-bundle;23.0.7344513-beta4" \ +# "ndk-bundle;23.0.7421159-beta5" \ +# "ndk-bundle;23.0.7530507-beta6" \ +# "ndk-bundle;23.0.7599858" \ +# "ndk-bundle;23.1.7779620" \ +# "ndk-bundle;23.2.8568313" \ +# "ndk-bundle;24.0.7856742-beta1" \ +# "ndk-bundle;24.0.7956693-beta2" \ +# "ndk-bundle;24.0.8079956-beta3" \ +# "ndk-bundle;24.0.8215888" \ +# "ndk-bundle;25.0.8141415-beta1" \ +# "ndk-bundle;25.0.8221429-beta2" \ +# "ndk-bundle;25.0.8355429-beta3" \ +# "ndk-bundle;25.0.8528842-beta4" \ + "ndk-bundle;25.0.8775105" \ + "ndk-bundle;25.1.8937393" \ + "ndk-bundle;25.2.9519653" + +RUN sdkmanager --install \ +# "ndk-bundle;r10e" \ +# "ndk-bundle;r11" \ +# "ndk-bundle;r11b" \ +# "ndk-bundle;r11c" \ +# "ndk-bundle;r12" \ +# "ndk-bundle;r12b" \ +# "ndk-bundle;r13" \ +# "ndk-bundle;r13b" \ +# "ndk-bundle;r14" \ +# "ndk-bundle;r14b" \ +# "ndk-bundle;r15" \ +# "ndk-bundle;r15b" \ +# "ndk-bundle;r15c" \ +# "ndk-bundle;r16" \ +# "ndk-bundle;r16b" \ +# "ndk-bundle;r17" \ +# "ndk-bundle;r17b" \ +# "ndk-bundle;r17c" \ +# "ndk-bundle;r18b" \ +# "ndk-bundle;r19" \ +# "ndk-bundle;r19b" \ +# "ndk-bundle;r19c" \ +# "ndk-bundle;r20" \ +# "ndk-bundle;r20-beta2" \ +# "ndk-bundle;r20-beta3" \ +# "ndk-bundle;r20b" \ +# "ndk-bundle;r21" \ +# "ndk-bundle;r21-beta2" \ +# "ndk-bundle;r21b" \ +# "ndk-bundle;r21b-beta1" \ +# "ndk-bundle;r21b-beta2" \ +# "ndk-bundle;r21b-beta3" \ +# "ndk-bundle;r21c" \ +# "ndk-bundle;r21d" \ +# "ndk-bundle;r21e" \ +# "ndk-bundle;r22" \ +# "ndk-bundle;r22-beta1" \ +# "ndk-bundle;r22b" \ +# "ndk-bundle;r23" \ +# "ndk-bundle;r23-beta1" \ +# "ndk-bundle;r23-beta2" \ +# "ndk-bundle;r23-beta3" \ +# "ndk-bundle;r23-beta4" \ +# "ndk-bundle;r23-beta5" \ +# "ndk-bundle;r23-beta6" \ +# "ndk-bundle;r23b" \ +# "ndk-bundle;r23c" \ +# "ndk-bundle;r24" \ +# "ndk-bundle;r24-beta1" \ +# "ndk-bundle;r24-beta2" \ +# "ndk-bundle;r24-rc1" \ + "ndk-bundle;r25" \ +# "ndk-bundle;r25-beta1" \ +# "ndk-bundle;r25-beta2" \ +# "ndk-bundle;r25-beta3" \ +# "ndk-bundle;r25-beta4" \ +# "ndk-bundle;r25b" \ + "ndk-bundle;r25c" + +RUN sdkmanager --install \ +# "ndk;11.0.2655954" \ +# "ndk;11.1.2683735" \ +# "ndk;11.2.2725575" \ +# "ndk;12.0.2931149" \ +# "ndk;12.1.2977051" \ +# "ndk;13.0.3315539" \ +# "ndk;13.1.3345770" \ +# "ndk;14.0.3770861" \ +# "ndk;14.1.3816874" \ +# "ndk;15.0.4075724" \ +# "ndk;15.1.4119039" \ +# "ndk;15.2.4203891" \ +# "ndk;16.0.4442984" \ +# "ndk;16.1.4479499" \ +# "ndk;17.0.4754217" \ +# "ndk;17.1.4828580" \ +# "ndk;17.2.4988734" \ +# "ndk;18.1.5063045" \ +# "ndk;19.0.5232133" \ +# "ndk;19.1.5304403" \ +# "ndk;19.2.5345600" \ +# "ndk;20.0.5392854-beta2" \ +# "ndk;20.0.5471264-beta3" \ +# "ndk;20.0.5594570" \ +# "ndk;20.1.5948944" \ +# "ndk;21.0.6011959-beta2" \ +# "ndk;21.0.6113669" \ +# "ndk;21.1.6210238-beta1" \ +# "ndk;21.1.6273396-beta2" \ +# "ndk;21.1.6352462" \ +# "ndk;21.1.6363665-beta3" \ +# "ndk;21.2.6472646" \ +# "ndk;21.3.6528147" \ +# "ndk;21.4.7075529" \ +# "ndk;22.0.6917172-beta1" \ +# "ndk;22.0.7026061" \ +# "ndk;22.1.7171670" \ +# "ndk;23.0.7123448-beta1" \ +# "ndk;23.0.7196353-beta2" \ +# "ndk;23.0.7272597-beta3" \ +# "ndk;23.0.7344513-beta4" \ +# "ndk;23.0.7421159-beta5" \ +# "ndk;23.0.7530507-beta6" \ +# "ndk;23.0.7599858" \ +# "ndk;23.1.7779620" \ +# "ndk;23.2.8568313" \ +# "ndk;24.0.7856742-beta1" \ +# "ndk;24.0.7956693-beta2" \ +# "ndk;24.0.8079956-beta3" \ +# "ndk;24.0.8215888" \ +# "ndk;25.0.8141415-beta1" \ +# "ndk;25.0.8221429-beta2" \ +# "ndk;25.0.8355429-beta3" \ +# "ndk;25.0.8528842-beta4" \ + "ndk;25.0.8775105" \ + "ndk;25.1.8937393" \ + "ndk;25.2.9519653" + +RUN sdkmanager --install \ +# "ndk;r10e" \ +# "ndk;r11" \ +# "ndk;r11b" \ +# "ndk;r11c" \ +# "ndk;r12" \ +# "ndk;r12b" \ +# "ndk;r13" \ +# "ndk;r13b" \ +# "ndk;r14" \ +# "ndk;r14b" \ +# "ndk;r15" \ +# "ndk;r15b" \ +# "ndk;r15c" \ +# "ndk;r16" \ +# "ndk;r16b" \ +# "ndk;r17" \ +# "ndk;r17b" \ +# "ndk;r17c" \ +# "ndk;r18b" \ +# "ndk;r19" \ +# "ndk;r19b" \ +# "ndk;r19c" \ +# "ndk;r20" \ +# "ndk;r20-beta2" \ +# "ndk;r20-beta3" \ +# "ndk;r20b" \ +# "ndk;r21" \ +# "ndk;r21-beta2" \ +# "ndk;r21b" \ +# "ndk;r21b-beta1" \ +# "ndk;r21b-beta2" \ +# "ndk;r21b-beta3" \ +# "ndk;r21c" \ +# "ndk;r21d" \ +# "ndk;r21e" \ +# "ndk;r22" \ +# "ndk;r22-beta1" \ +# "ndk;r22b" \ +# "ndk;r23" \ +# "ndk;r23-beta1" \ +# "ndk;r23-beta2" \ +# "ndk;r23-beta3" \ +# "ndk;r23-beta4" \ +# "ndk;r23-beta5" \ +# "ndk;r23-beta6" \ +# "ndk;r23b" \ +# "ndk;r23c" \ +# "ndk;r24" \ +# "ndk;r24-beta1" \ +# "ndk;r24-beta2" \ +# "ndk;r24-rc1" \ + "ndk;r25" \ +# "ndk;r25-beta1" \ +# "ndk;r25-beta2" \ +# "ndk;r25-beta3" \ +# "ndk;r25-beta4" \ +# "ndk;r25b" \ + "ndk;r25c" + +RUN sdkmanager --install \ + "tools" \ + "tools;20.0.1" \ + "tools;20.0.3" \ + "tools;21.0.1" \ + "tools;22.0.1" \ + "tools;22.0.4" \ + "tools;22.0.5" \ + "tools;22.2.1" \ + "tools;22.6.1" \ + "tools;22.6.2" \ + "tools;22.6.3" \ + "tools;22.6.4" \ + "tools;23.0.1" \ + "tools;23.0.2" \ + "tools;23.0.4" \ + "tools;23.0.5" \ + "tools;24.0.1" \ + "tools;24.0.2" \ + "tools;24.1.2" \ + "tools;24.3.1" \ + "tools;24.3.2" \ + "tools;24.3.3" \ + "tools;24.3.4" \ + "tools;24.4.1" \ + "tools;25.0.1" \ + "tools;25.0.2" \ + "tools;25.0.3" \ + "tools;25.0.4" \ + "tools;25.0.5" \ + "tools;25.0.6" \ + "tools;25.0.7" \ + "tools;25.0.8" \ + "tools;25.0.9" \ + "tools;25.1.0" \ + "tools;25.1.1" \ + "tools;25.1.2" \ + "tools;25.1.3" \ + "tools;25.1.4" \ + "tools;25.1.5" \ + "tools;25.1.6" \ + "tools;25.1.7" \ + "tools;25.2.1" \ + "tools;25.2.2" \ + "tools;25.2.3" \ + "tools;25.2.4" \ + "tools;25.2.5" \ + "tools;26.1.1" + +# Activate android sdk +#RUN echo "24333f8a63b6825ea9c5514f83c2829b004d1fee" > /usr/lib/android-sdk/licenses/android-sdk-license +#RUN rm -rfv /usr/lib/android-sdk/licenses/* +RUN yes | sdkmanager --licenses +RUN ln -fs $ANDROID_SDK_ROOT/cmdline-tools/latest/bin/screenshot2 $ANDROID_SDK_ROOT/tools/bin/screenshot2 + +################################################################## +# cleaninig up +################################################################## +RUN apt clean -y && \ + apt-get clean all && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb && \ + rm -rfv /tmp/* \ No newline at end of file diff --git a/linux/ecosystem/nodejs/outdated/node12/Makefile b/linux/ecosystem/gitlab/runner/android-sdk/jdk8/Makefile similarity index 100% rename from linux/ecosystem/nodejs/outdated/node12/Makefile rename to linux/ecosystem/gitlab/runner/android-sdk/jdk8/Makefile diff --git a/linux/ecosystem/gitlab/runner/android-sdk/jdk8/README.md b/linux/ecosystem/gitlab/runner/android-sdk/jdk8/README.md new file mode 100644 index 000000000..e69de29bb diff --git a/linux/ecosystem/gitlab/runner/android-sdk/jdk8/docker-compose.yml b/linux/ecosystem/gitlab/runner/android-sdk/jdk8/docker-compose.yml new file mode 100644 index 000000000..ad8a8ddfb --- /dev/null +++ b/linux/ecosystem/gitlab/runner/android-sdk/jdk8/docker-compose.yml @@ -0,0 +1,6 @@ +version: '3' +services: + app: + image: "epicmorg/gitlab-runner:android-sdk-jdk8" + build: + context: . diff --git a/linux/ecosystem/gitlab/runner/android-sdk/jdk8/sdkman.sh b/linux/ecosystem/gitlab/runner/android-sdk/jdk8/sdkman.sh new file mode 100755 index 000000000..59b74df1e --- /dev/null +++ b/linux/ecosystem/gitlab/runner/android-sdk/jdk8/sdkman.sh @@ -0,0 +1,312 @@ +#!/bin/bash +# +# Copyright 2017 Marco Vermeulen +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# + + +# install:- channel: stable; cliVersion: 5.15.0; cliNativeVersion: NA; api: https://api.sdkman.io/2 + +# Global variables +SDKMAN_SERVICE="https://api.sdkman.io/2" +SDKMAN_VERSION="5.15.0" +SDKMAN_PLATFORM=$(uname) + +if [ -z "$SDKMAN_DIR" ]; then + SDKMAN_DIR="$HOME/.sdkman" + SDKMAN_DIR_RAW='$HOME/.sdkman' +else + SDKMAN_DIR_RAW="$SDKMAN_DIR" +fi + +# Local variables +sdkman_tmp_folder="${SDKMAN_DIR}/tmp" +sdkman_zip_file="${sdkman_tmp_folder}/sdkman-${SDKMAN_VERSION}.zip" +sdkman_zip_base_folder="${sdkman_tmp_folder}/sdkman-${SDKMAN_VERSION}" +sdkman_ext_folder="${SDKMAN_DIR}/ext" +sdkman_etc_folder="${SDKMAN_DIR}/etc" +sdkman_var_folder="${SDKMAN_DIR}/var" +sdkman_archives_folder="${SDKMAN_DIR}/archives" +sdkman_candidates_folder="${SDKMAN_DIR}/candidates" +sdkman_config_file="${sdkman_etc_folder}/config" +sdkman_bash_profile="${HOME}/.bash_profile" +sdkman_profile="${HOME}/.profile" +sdkman_bashrc="${HOME}/.bashrc" +sdkman_zshrc="${ZDOTDIR:-${HOME}}/.zshrc" + +sdkman_init_snippet=$( cat << EOF +#THIS MUST BE AT THE END OF THE FILE FOR SDKMAN TO WORK!!! +export SDKMAN_DIR="$SDKMAN_DIR_RAW" +[[ -s "${SDKMAN_DIR_RAW}/bin/sdkman-init.sh" ]] && source "${SDKMAN_DIR_RAW}/bin/sdkman-init.sh" +EOF +) + +# OS specific support (must be 'true' or 'false'). +cygwin=false; +darwin=false; +solaris=false; +freebsd=false; +case "$(uname)" in + CYGWIN*) + cygwin=true + ;; + Darwin*) + darwin=true + ;; + SunOS*) + solaris=true + ;; + FreeBSD*) + freebsd=true +esac + +echo '' +echo ' -+syyyyyyys:' +echo ' `/yho:` -yd.' +echo ' `/yh/` +m.' +echo ' .oho. hy .`' +echo ' .sh/` :N` `-/o` `+dyyo:.' +echo ' .yh:` `M- `-/osysoym :hs` `-+sys: hhyssssssssy+' +echo ' .sh:` `N: ms/-`` yy.yh- -hy. `.N-````````+N.' +echo ' `od/` `N- -/oM- ddd+` `sd: hNNm -N:' +echo ' :do` .M. dMMM- `ms. /d+` `NMMs `do' +echo ' .yy- :N` ```mMMM. - -hy. /MMM: yh' +echo ' `+d+` `:/oo/` `-/osyh/ossssssdNMM` .sh: yMMN` /m.' +echo ' -dh- :ymNMMMMy `-/shmNm-`:N/-.`` `.sN /N- `NMMy .m/' +echo ' `oNs` -hysosmMMMMydmNmds+-.:ohm : sd` :MMM/ yy' +echo ' .hN+ /d: -MMMmhs/-.` .MMMh .ss+- `yy` sMMN` :N.' +echo ' :mN/ `N/ `o/-` :MMMo +MMMN- .` `ds mMMh do' +echo ' /NN/ `N+....--:/+oooosooo+:sMMM: hMMMM: `my .m+ -MMM+ :N.' +echo ' /NMo -+ooooo+/:-....`...:+hNMN. `NMMMd` .MM/ -m: oMMN. hs' +echo ' -NMd` :mm -MMMm- .s/ -MMm. /m- mMMd -N.' +echo ' `mMM/ .- /MMh. -dMo -MMMy od. .MMMs..---yh' +echo ' +MMM. sNo`.sNMM+ :MMMM/ sh`+MMMNmNm+++-' +echo ' mMMM- /--ohmMMM+ :MMMMm. `hyymmmdddo' +echo ' MMMMh. ```` `-+yy/`yMMM/ :MMMMMy -sm:.``..-:-.`' +echo ' dMMMMmo-.``````..-:/osyhddddho. `+shdh+. hMMM: :MmMMMM/ ./yy/` `:sys+/+sh/' +echo ' .dMMMMMMmdddddmmNMMMNNNNNMMMMMs sNdo- dMMM- `-/yd/MMMMm-:sy+. :hs- /N`' +echo ' `/ymNNNNNNNmmdys+/::----/dMMm: +m- mMMM+ohmo/.` sMMMMdo- .om: `sh' +echo ' `.-----+/.` `.-+hh/` `od. NMMNmds/ `mmy:` +mMy `:yy.' +echo ' /moyso+//+ossso:. .yy` `dy+:` .. :MMMN+---/oys:' +echo ' /+m: `.-:::-` /d+ +MMMMMMMNh:`' +echo ' +MN/ -yh. `+hddhy+.' +echo ' /MM+ .sh:' +echo ' :NMo -sh/' +echo ' -NMs `/yy:' +echo ' .NMy `:sh+.' +echo ' `mMm` ./yds-' +echo ' `dMMMmyo:-.````.-:oymNy:`' +echo ' +NMMMMMMMMMMMMMMMMms:`' +echo ' -+shmNMMMNmdy+:`' +echo '' +echo '' +echo ' Now attempting installation...' +echo '' +echo '' + +# Sanity checks + +echo "Looking for a previous installation of SDKMAN..." +if [ -d "$SDKMAN_DIR" ]; then + echo "SDKMAN found." + echo "" + echo "======================================================================================================" + echo " You already have SDKMAN installed." + echo " SDKMAN was found at:" + echo "" + echo " ${SDKMAN_DIR}" + echo "" + echo " Please consider running the following if you need to upgrade." + echo "" + echo " $ sdk selfupdate force" + echo "" + echo "======================================================================================================" + echo "" + exit 0 +fi + +echo "Looking for unzip..." +if ! command -v unzip > /dev/null; then + echo "Not found." + echo "======================================================================================================" + echo " Please install unzip on your system using your favourite package manager." + echo "" + echo " Restart after installing unzip." + echo "======================================================================================================" + echo "" + exit 1 +fi + +echo "Looking for zip..." +if ! command -v zip > /dev/null; then + echo "Not found." + echo "======================================================================================================" + echo " Please install zip on your system using your favourite package manager." + echo "" + echo " Restart after installing zip." + echo "======================================================================================================" + echo "" + exit 1 +fi + +echo "Looking for curl..." +if ! command -v curl > /dev/null; then + echo "Not found." + echo "" + echo "======================================================================================================" + echo " Please install curl on your system using your favourite package manager." + echo "" + echo " Restart after installing curl." + echo "======================================================================================================" + echo "" + exit 1 +fi + +if [[ "$solaris" == true ]]; then + echo "Looking for gsed..." + if [ -z $(which gsed) ]; then + echo "Not found." + echo "" + echo "======================================================================================================" + echo " Please install gsed on your solaris system." + echo "" + echo " SDKMAN uses gsed extensively." + echo "" + echo " Restart after installing gsed." + echo "======================================================================================================" + echo "" + exit 1 + fi +else + echo "Looking for sed..." + if [ -z $(command -v sed) ]; then + echo "Not found." + echo "" + echo "======================================================================================================" + echo " Please install sed on your system using your favourite package manager." + echo "" + echo " Restart after installing sed." + echo "======================================================================================================" + echo "" + exit 1 + fi +fi + +echo "Installing SDKMAN scripts..." + + +# Create directory structure + +echo "Create distribution directories..." +mkdir -p "$sdkman_tmp_folder" +mkdir -p "$sdkman_ext_folder" +mkdir -p "$sdkman_etc_folder" +mkdir -p "$sdkman_var_folder" +mkdir -p "$sdkman_archives_folder" +mkdir -p "$sdkman_candidates_folder" + +echo "Getting available candidates..." +SDKMAN_CANDIDATES_CSV=$(curl -s "${SDKMAN_SERVICE}/candidates/all") +echo "$SDKMAN_CANDIDATES_CSV" > "${SDKMAN_DIR}/var/candidates" + +echo "Prime the config file..." +touch "$sdkman_config_file" +echo "sdkman_auto_answer=false" >> "$sdkman_config_file" +if [ -z "$ZSH_VERSION" -a -z "$BASH_VERSION" ]; then + echo "sdkman_auto_complete=false" >> "$sdkman_config_file" +else + echo "sdkman_auto_complete=true" >> "$sdkman_config_file" +fi +echo "sdkman_auto_env=false" >> "$sdkman_config_file" +echo "sdkman_auto_update=true" >> "$sdkman_config_file" +echo "sdkman_beta_channel=false" >> "$sdkman_config_file" +echo "sdkman_checksum_enable=true" >> "$sdkman_config_file" +echo "sdkman_colour_enable=true" >> "$sdkman_config_file" +echo "sdkman_curl_connect_timeout=7" >> "$sdkman_config_file" +echo "sdkman_curl_max_time=10" >> "$sdkman_config_file" +echo "sdkman_debug_mode=false" >> "$sdkman_config_file" +echo "sdkman_insecure_ssl=false" >> "$sdkman_config_file" +echo "sdkman_rosetta2_compatible=false" >> "$sdkman_config_file" +echo "sdkman_selfupdate_feature=true" >> "$sdkman_config_file" + +echo "Download script archive..." +curl --location --progress-bar "${SDKMAN_SERVICE}/broker/download/sdkman/install/${SDKMAN_VERSION}/${SDKMAN_PLATFORM}" > "$sdkman_zip_file" + +ARCHIVE_OK=$(unzip -qt "$sdkman_zip_file" | grep 'No errors detected in compressed data') +if [[ -z "$ARCHIVE_OK" ]]; then + echo "Downloaded zip archive corrupt. Are you connected to the internet?" + echo "" + echo "If problems persist, please ask for help on our Slack:" + echo "* easy sign up: https://slack.sdkman.io/" + echo "* report on channel: https://sdkman.slack.com/app_redirect?channel=user-issues" + rm -rf "$SDKMAN_DIR" + exit 1 +fi + +echo "Extract script archive..." +if [[ "$cygwin" == 'true' ]]; then + echo "Cygwin detected - normalizing paths for unzip..." + sdkman_tmp_folder=$(cygpath -w "$sdkman_tmp_folder") + sdkman_zip_file=$(cygpath -w "$sdkman_zip_file") + sdkman_zip_base_folder=$(cygpath -w "$sdkman_zip_base_folder") +fi +unzip -qo "$sdkman_zip_file" -d "$sdkman_tmp_folder" + +echo "Install scripts..." +mv "${sdkman_zip_base_folder}/"* "$SDKMAN_DIR" +rm -rf "$sdkman_zip_base_folder" + +echo "Set version to $SDKMAN_VERSION ..." +echo "$SDKMAN_VERSION" > "${SDKMAN_DIR}/var/version" + + +if [[ $darwin == true ]]; then + touch "$sdkman_bash_profile" + echo "Attempt update of login bash profile on OSX..." + if [[ -z $(grep 'sdkman-init.sh' "$sdkman_bash_profile") ]]; then + echo -e "\n$sdkman_init_snippet" >> "$sdkman_bash_profile" + echo "Added sdkman init snippet to $sdkman_bash_profile" + fi +else + echo "Attempt update of interactive bash profile on regular UNIX..." + touch "${sdkman_bashrc}" + if [[ -z $(grep 'sdkman-init.sh' "$sdkman_bashrc") ]]; then + echo -e "\n$sdkman_init_snippet" >> "$sdkman_bashrc" + echo "Added sdkman init snippet to $sdkman_bashrc" + fi +fi + +echo "Attempt update of zsh profile..." +touch "$sdkman_zshrc" +if [[ -z $(grep 'sdkman-init.sh' "$sdkman_zshrc") ]]; then + echo -e "\n$sdkman_init_snippet" >> "$sdkman_zshrc" + echo "Updated existing ${sdkman_zshrc}" +fi + + + +echo -e "\n\n\nAll done!\n\n" + +echo "You are subscribed to the STABLE channel." + +echo "" +echo "Please open a new terminal, or run the following in the existing one:" +echo "" +echo " source \"${SDKMAN_DIR}/bin/sdkman-init.sh\"" +echo "" +echo "Then issue the following command:" +echo "" +echo " sdk help" +echo "" +echo "Enjoy!!!" diff --git a/linux/ecosystem/gitlab/runner/dotnet-sdk/Dockerfile b/linux/ecosystem/gitlab/runner/dotnet-sdk/Dockerfile index f504b95cc..09f343c89 100644 --- a/linux/ecosystem/gitlab/runner/dotnet-sdk/Dockerfile +++ b/linux/ecosystem/gitlab/runner/dotnet-sdk/Dockerfile @@ -2,8 +2,6 @@ FROM epicmorg/gitlab-runner:latest LABEL maintainer="EpicMorg DevTeam, developer@epicm.org" ARG DEBIAN_FRONTEND=noninteractive -COPY sources.list.d/sources.11.list /etc/apt/sources.list.d/sources.11.list - ################################################################## # teamcity dotnet+powershell setup ################################################################## @@ -25,7 +23,7 @@ ENV CLR_OPENSSL_VERSION_OVERRIDE=45 ENV POWERSHELL_DISTRIBUTION_CHANNEL=PSDocker-DotnetSDK-Debian-10 #Install packages RUN curl https://packages.microsoft.com/keys/microsoft.asc | sudo apt-key add - && \ - echo 'deb [arch=amd64,arm64,armhf] https://packages.microsoft.com/debian/11/prod bullseye main' > /etc/apt/sources.list.d/microsoft.dotnet.list && \ + echo 'deb [arch=amd64,arm64,armhf] https://packages.microsoft.com/debian/12/prod bookworm main' > /etc/apt/sources.list.d/microsoft.dotnet.list && \ apt-get update && \ apt-get install -y --no-install-recommends --allow-unauthenticated \ libc6 \ diff --git a/linux/ecosystem/gitlab/runner/dotnet-sdk/sources.list.d/sources.11.list b/linux/ecosystem/gitlab/runner/dotnet-sdk/sources.list.d/sources.11.list deleted file mode 100644 index 5a8c0081a..000000000 --- a/linux/ecosystem/gitlab/runner/dotnet-sdk/sources.list.d/sources.11.list +++ /dev/null @@ -1,21 +0,0 @@ -#main -deb http://httpredir.debian.org/debian/ bullseye main contrib non-free -deb-src http://httpredir.debian.org/debian/ bullseye main contrib non-free -deb http://httpredir.debian.org/debian/ bullseye-updates main contrib non-free -deb-src http://httpredir.debian.org/debian/ bullseye-updates main contrib non-free -deb http://httpredir.debian.org/debian/ bullseye-backports main contrib non-free -deb-src http://httpredir.debian.org/debian/ bullseye-backports main contrib non-free -deb http://httpredir.debian.org/debian/ bullseye-proposed-updates main contrib non-free -deb-src http://httpredir.debian.org/debian/ bullseye-proposed-updates main contrib non-free - -#security -deb http://httpredir.debian.org/debian-security/ bullseye-security main contrib non-free -deb-src http://httpredir.debian.org/debian-security/ bullseye-security main contrib non-free -deb http://httpredir.debian.org/debian-security/ bullseye-security/updates main contrib non-free -deb-src http://httpredir.debian.org/debian-security/ bullseye-security/updates main contrib non-free - -##multimedia -# deb http://httpredir.debian.org/debian-multimedia/ bullseye main non-free -# deb-src http://httpredir.debian.org/debian-multimedia/ bullseye main non-free -# deb http://httpredir.debian.org/debian-multimedia/ bullseye-backports main -# deb-src http://httpredir.debian.org/debian-multimedia/ bullseye-backports main diff --git a/linux/ecosystem/gitlab/runner/latest/Dockerfile b/linux/ecosystem/gitlab/runner/latest/Dockerfile index c642b4f67..dde8075b7 100644 --- a/linux/ecosystem/gitlab/runner/latest/Dockerfile +++ b/linux/ecosystem/gitlab/runner/latest/Dockerfile @@ -1,8 +1,8 @@ -FROM epicmorg/debian:bullseye-develop +FROM epicmorg/debian:bookworm-develop LABEL maintainer="EpicMorg DevTeam, developer@epicm.org" ARG DEBIAN_FRONTEND=noninteractive -ENV GITLAB_RUNNER_HOME=/opt/gitlab-runner +ENV GITLAB_RUNNER_HOME=/home/gitlab-runner ENV GITLAB_RUNNER_CONF=/etc/gitlab-runner ENV GIT_SSH_VARIANT=ssh RUN mkdir -p ${GITLAB_RUNNER_HOME} ${GITLAB_RUNNER_CONF} ${GITLAB_RUNNER_CONF}/certs && \ @@ -14,8 +14,8 @@ RUN mkdir -p ${GITLAB_RUNNER_HOME} ${GITLAB_RUNNER_CONF} ${GITLAB_RUNNER_CONF}/c #Install packages RUN curl -fsSL https://download.docker.com/linux/debian/gpg | apt-key add - && \ - echo 'deb https://download.docker.com/linux/debian bullseye test' > /etc/apt/sources.list.d/docker.list && \ - echo 'deb https://download.docker.com/linux/debian bullseye nightly' >> /etc/apt/sources.list.d/docker.list && \ + echo 'deb https://download.docker.com/linux/debian bookworm test' > /etc/apt/sources.list.d/docker.list && \ + echo 'deb https://download.docker.com/linux/debian bookworm nightly' >> /etc/apt/sources.list.d/docker.list && \ apt-cache policy docker-ce && \ apt-get update && \ apt-get install -y --no-install-recommends --allow-unauthenticated \ @@ -64,12 +64,12 @@ RUN apt clean -y && \ #Final config STOPSIGNAL SIGQUIT -VOLUME ["${GITLAB_RUNNER_CONF}", "${GITLAB_RUNNER_HOME}", "/var/lib/docker"] -WORKDIR ${GITLAB_RUNNER_HOME} +VOLUME ["${GITLAB_RUNNER_CONF}", "/home/gitlab-runner", "/var/lib/docker"] +WORKDIR /home/gitlab-runner # Add image configuration and scripts COPY docker-entrypoint.sh /usr/bin/docker-entrypoint.sh RUN chmod 755 /usr/bin/docker-entrypoint.sh ENTRYPOINT ["/usr/bin/dumb-init", "docker-entrypoint.sh"] -CMD ["run", "--user=gitlab-runner", "--working-directory=${GITLAB_RUNNER_HOME}"] +CMD ["run", "--user=gitlab-runner", "--working-directory=/home/gitlab-runner"] diff --git a/linux/ecosystem/gitlab/runner/node0.12/Dockerfile b/linux/ecosystem/gitlab/runner/node0.12/Dockerfile new file mode 100644 index 000000000..4b6ab2e60 --- /dev/null +++ b/linux/ecosystem/gitlab/runner/node0.12/Dockerfile @@ -0,0 +1,46 @@ +FROM epicmorg/gitlab-runner:latest +LABEL maintainer="EpicMorg DevTeam, developer@epicm.org" + +ARG DEBIAN_FRONTEND=noninteractive + +ARG K_NODE_MAJOR_VERSION=0 +ARG K_NODE_VERSION=${K_NODE_MAJOR_VERSION}.12.18 +ARG K_NODE_URL=https://nodejs.org/dist/v${K_NODE_VERSION}/node-v${K_NODE_VERSION}-linux-x64.tar.gz +ARG K_NODE_HEADERS_URL=https://nodejs.org/dist/v${K_NODE_VERSION}/node-v${K_NODE_VERSION}-headers.tar.gz + +################################################################## +# Node.js 0.x +################################################################## +RUN groupadd -g 1337 node && \ + useradd -u 1337 --gid node --shell /bin/bash --create-home node + +RUN curl --user-agent "Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Firefox/81.0" --location ${K_NODE_URL}?$(date +%s) \ + --header 'Cache-Control: no-cache, no-store' \ + --header 'Pragma: no-cache' | tar xzv --strip-components=1 --directory /usr/local/ && \ + rm -rfv /usr/local/CHANGELOG.md /usr/local/LICENSE /usr/local/README.md + +RUN curl --user-agent "Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Firefox/81.0" --location ${K_NODE_HEADERS_URL}?$(date +%s) \ + --header 'Cache-Control: no-cache, no-store' \ + --header 'Pragma: no-cache' | tar xzv --strip-components=1 --directory /usr/local/ + +#RUN npm install -g pnpm yarn + +################################################################## +# Version after install +################################################################## +RUN echo "=============================================" && \ + echo node $(node --version) && \ + echo npm $(npm --version) && \ +# echo yarn $(yarn --version) && \ +# echo pnpm $(pnpm --version) && \ + echo "=============================================" + +################################################################## +# cleanup +################################################################## +RUN apt-get purge policykit-1 -y && \ +apt-get clean -y && \ +apt-get autoclean -y && \ +rm -rfv /var/lib/apt/lists/* && \ +rm -rfv /var/cache/apt/archives/*.deb && \ +rm -rfv /tmp/* diff --git a/linux/ecosystem/nodejs/outdated/node13/Makefile b/linux/ecosystem/gitlab/runner/node0.12/Makefile similarity index 100% rename from linux/ecosystem/nodejs/outdated/node13/Makefile rename to linux/ecosystem/gitlab/runner/node0.12/Makefile diff --git a/linux/ecosystem/nodejs/outdated/node10/README.md b/linux/ecosystem/gitlab/runner/node0.12/README.md similarity index 100% rename from linux/ecosystem/nodejs/outdated/node10/README.md rename to linux/ecosystem/gitlab/runner/node0.12/README.md diff --git a/linux/ecosystem/gitlab/runner/node0.12/docker-compose.yml b/linux/ecosystem/gitlab/runner/node0.12/docker-compose.yml new file mode 100644 index 000000000..7a237fbe2 --- /dev/null +++ b/linux/ecosystem/gitlab/runner/node0.12/docker-compose.yml @@ -0,0 +1,6 @@ +version: '3' +services: + app: + image: "epicmorg/gitlab-runner:node0.12" + build: + context: . diff --git a/linux/ecosystem/gitlab/runner/node10/Dockerfile b/linux/ecosystem/gitlab/runner/node10/Dockerfile index 144d9b6b8..d9e375996 100644 --- a/linux/ecosystem/gitlab/runner/node10/Dockerfile +++ b/linux/ecosystem/gitlab/runner/node10/Dockerfile @@ -1,35 +1,46 @@ FROM epicmorg/gitlab-runner:latest LABEL maintainer="EpicMorg DevTeam, developer@epicm.org" + ARG DEBIAN_FRONTEND=noninteractive +ARG K_NODE_MAJOR_VERSION=10 +ARG K_NODE_VERSION=${K_NODE_MAJOR_VERSION}.24.1 +ARG K_NODE_URL=https://nodejs.org/dist/v${K_NODE_VERSION}/node-v${K_NODE_VERSION}-linux-x64.tar.gz +ARG K_NODE_HEADERS_URL=https://nodejs.org/dist/v${K_NODE_VERSION}/node-v${K_NODE_VERSION}-headers.tar.gz + ################################################################## # Node.js 10.x ################################################################## -RUN groupadd node && \ - useradd --gid node --shell /bin/bash --create-home node +RUN groupadd -g 1337 node && \ + useradd -u 1337 --gid node --shell /bin/bash --create-home node -RUN curl -sL https://deb.nodesource.com/setup_10.x | bash - && \ - curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | sudo apt-key add - && \ - echo "deb https://nightly.yarnpkg.com/debian/ nightly main" > /etc/apt/sources.list.d/yarn.list && \ - apt-get update && \ - apt-cache policy nodejs && \ - apt-get install -y nodejs=10.24.1-deb-1nodesource1 yarn +RUN curl --user-agent "Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Firefox/81.0" --location ${K_NODE_URL}?$(date +%s) \ + --header 'Cache-Control: no-cache, no-store' \ + --header 'Pragma: no-cache' | tar xzv --strip-components=1 --directory /usr/local/ && \ + rm -rfv /usr/local/CHANGELOG.md /usr/local/LICENSE /usr/local/README.md -# curl -L https://www.npmjs.com/install.sh | sh -# npm install -g npm +RUN curl --user-agent "Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Firefox/81.0" --location ${K_NODE_HEADERS_URL}?$(date +%s) \ + --header 'Cache-Control: no-cache, no-store' \ + --header 'Pragma: no-cache' | tar xzv --strip-components=1 --directory /usr/local/ +RUN npm install -g pnpm@5 yarn + +################################################################## +# Version after install +################################################################## RUN echo "=============================================" && \ echo node $(node --version) && \ echo npm $(npm --version) && \ echo yarn $(yarn --version) && \ + echo pnpm $(pnpm --version) && \ echo "=============================================" ################################################################## -# cleaninig up +# cleanup ################################################################## -RUN apt clean -y && \ - apt-get clean all && \ - apt autoclean -y && \ - rm -rfv /var/lib/apt/lists/* && \ - rm -rfv /var/cache/apt/archives/*.deb && \ - rm -rfv /tmp/* \ No newline at end of file +RUN apt-get purge policykit-1 -y && \ +apt-get clean -y && \ +apt-get autoclean -y && \ +rm -rfv /var/lib/apt/lists/* && \ +rm -rfv /var/cache/apt/archives/*.deb && \ +rm -rfv /tmp/* diff --git a/linux/ecosystem/gitlab/runner/node10/README.md b/linux/ecosystem/gitlab/runner/node10/README.md index e69de29bb..b53fe01e8 100644 --- a/linux/ecosystem/gitlab/runner/node10/README.md +++ b/linux/ecosystem/gitlab/runner/node10/README.md @@ -0,0 +1,93 @@ +## TeamCity Minimal Build Agent + +[](https://confluence.jetbrains.com/display/ALL/JetBrains+on+GitHub) + +This is an official [JetBrains TeamCity](https://www.jetbrains.com/teamcity/) minimal build agent image. + + More details about tags and components are [here](https://github.com/JetBrains/teamcity-docker-images/blob/master/generated/teamcity-minimal-agent.md). + +The [TeamCity build agent](https://www.jetbrains.com/help/teamcity/build-agent.html) connects to the TeamCity server and spawns the actual build processes. +You can use the ```jetbrains/teamcity-server``` image to run a TeamCity server. + +This minimal image adds just a TeamCity agent without any tools like VCS clients, etc. It is suitable for simple builds and can serve as a base for your custom images. For Java or .NET development we recommend using the default build agent image [jetbrains/teamcity-agent](https://hub.docker.com/r/jetbrains/teamcity-agent/). + +## How to Use This Image + +Pull the TeamCity minimal image from the Docker Hub Repository: + +``` +jetbrains/teamcity-minimal-agent +``` +  +and use the following command to start a container with TeamCity agent running inside +a Linux container: + +``` +docker run -it -e SERVER_URL="" \ + -v :/data/teamcity_agent/conf \ + jetbrains/teamcity-minimal-agent +``` +  +or a Windows container: +``` +docker run -it -e SERVER_URL="" + -v :C:/BuildAgent/conf + jetbrains/teamcity-minimal-agent +``` +where `` is the full URL for TeamCity server, accessible by the agent. Note that `localhost` will not generally not work as it will refer to the `localhost` inside the container. +`` is the host machine directory to serve as the TeamCity agent config directory. We recommend providing this binding in order to persist the agent configuration, e.g. authorization on the server. Note that you should map a different folder for every new agent you create. + +Since version 2020.1, TeamCity agent Docker images __run under a non-root user__. Refer to our [upgrade notes](https://www.jetbrains.com/help/teamcity/upgrade-notes.html#UpgradeNotes-AgentDockerimagesrunundernon-rootuser) for information on possible affected use cases. + +When you run the agent for the first time, you should authorize it via the TeamCity server UI: go to the **Unauthorized Agents** page in your browser. See [more details](https://www.jetbrains.com/help/teamcity/build-agent.html). + +All information about agent authorization is stored in agent's configuration folder. If you stop the container with the agent and then start a new one with the same config folder, the agent's name and authorization state will be preserved. + +TeamCity agent does not need manual upgrade: it will upgrade itself automatically on connecting to an upgraded server. + +### Agent Image Environment Variables + +- **SERVER_URL** - URL of the TeamCity server agent will connect to +- **AGENT_NAME** - (optional) Name of the agent in TeamCity UI, autogenerated if omitted +- **AGENT_TOKEN** - (optional) Agent authorization token, if unset, the agent should be [authorized](https://www.jetbrains.com/help/teamcity/build-agent.html#BuildAgent-BuildAgentStatus) via TeamCity UI. +- **OWN_ADDRESS** - (optional, linux only) IP address build agent binds to, autodetected +- **OWN_PORT** - (optional, linux only) Port build agent binds to, 9090 by default + +### Windows Containers Limitations + +The details on the known problems in Windows containers are available in the [TeamCity documentation](https://www.jetbrains.com/help/teamcity/known-issues.html#KnownIssues-WindowsDockerContainers). + +## Customization + +You can customize the image via the usual Docker procedure: + +1. Run the image +``` +docker run -it -e SERVER_URL="" \ + -v :/data/teamcity_agent/conf \ + --name="my-customized-agent" \ + jetbrains/teamcity-minimal-agent \ +``` +2. Enter the container +``` +docker exec -it my-customized-agent bash +``` + +3. Change whatever you need +4. Exit and [create a new image](https://docs.docker.com/engine/reference/commandline/commit/) from the container +``` +docker commit my-customized-agent +``` + +## License + +The image is available under the [TeamCity license](https://www.jetbrains.com/teamcity/buy/license.html). +TeamCity is free for perpetual use with the limitation of 100 build configurations (jobs) and 3 agents. [Licensing details](https://www.jetbrains.com/help/teamcity/licensing-policy.html). + +## Feedback + +Report issues of suggestions to the official TeamCity [issue tracker](https://youtrack.jetbrains.com/issues/TW). + +## Other TeamCity Images +* [TeamCity Server](https://hub.docker.com/r/jetbrains/teamcity-server/) +* [Build Agent](https://hub.docker.com/r/jetbrains/teamcity-agent/) diff --git a/linux/ecosystem/gitlab/runner/node11/Dockerfile b/linux/ecosystem/gitlab/runner/node11/Dockerfile new file mode 100644 index 000000000..2e83c395c --- /dev/null +++ b/linux/ecosystem/gitlab/runner/node11/Dockerfile @@ -0,0 +1,46 @@ +FROM epicmorg/gitlab-runner:latest +LABEL maintainer="EpicMorg DevTeam, developer@epicm.org" + +ARG DEBIAN_FRONTEND=noninteractive + +ARG K_NODE_MAJOR_VERSION=11 +ARG K_NODE_VERSION=${K_NODE_MAJOR_VERSION}.15.0 +ARG K_NODE_URL=https://nodejs.org/dist/v${K_NODE_VERSION}/node-v${K_NODE_VERSION}-linux-x64.tar.gz +ARG K_NODE_HEADERS_URL=https://nodejs.org/dist/v${K_NODE_VERSION}/node-v${K_NODE_VERSION}-headers.tar.gz + +################################################################## +# Node.js 11.x +################################################################## +RUN groupadd -g 1337 node && \ + useradd -u 1337 --gid node --shell /bin/bash --create-home node + +RUN curl --user-agent "Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Firefox/81.0" --location ${K_NODE_URL}?$(date +%s) \ + --header 'Cache-Control: no-cache, no-store' \ + --header 'Pragma: no-cache' | tar xzv --strip-components=1 --directory /usr/local/ && \ + rm -rfv /usr/local/CHANGELOG.md /usr/local/LICENSE /usr/local/README.md + +RUN curl --user-agent "Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Firefox/81.0" --location ${K_NODE_HEADERS_URL}?$(date +%s) \ + --header 'Cache-Control: no-cache, no-store' \ + --header 'Pragma: no-cache' | tar xzv --strip-components=1 --directory /usr/local/ + +RUN npm install -g pnpm@5 yarn + +################################################################## +# Version after install +################################################################## +RUN echo "=============================================" && \ + echo node $(node --version) && \ + echo npm $(npm --version) && \ + echo yarn $(yarn --version) && \ + echo pnpm $(pnpm --version) && \ + echo "=============================================" + +################################################################## +# cleanup +################################################################## +RUN apt-get purge policykit-1 -y && \ +apt-get clean -y && \ +apt-get autoclean -y && \ +rm -rfv /var/lib/apt/lists/* && \ +rm -rfv /var/cache/apt/archives/*.deb && \ +rm -rfv /tmp/* diff --git a/linux/ecosystem/nodejs/outdated/node14/Makefile b/linux/ecosystem/gitlab/runner/node11/Makefile similarity index 100% rename from linux/ecosystem/nodejs/outdated/node14/Makefile rename to linux/ecosystem/gitlab/runner/node11/Makefile diff --git a/linux/ecosystem/nodejs/outdated/node11/README.md b/linux/ecosystem/gitlab/runner/node11/README.md similarity index 100% rename from linux/ecosystem/nodejs/outdated/node11/README.md rename to linux/ecosystem/gitlab/runner/node11/README.md diff --git a/linux/ecosystem/gitlab/runner/node11/docker-compose.yml b/linux/ecosystem/gitlab/runner/node11/docker-compose.yml new file mode 100644 index 000000000..8d4c040e3 --- /dev/null +++ b/linux/ecosystem/gitlab/runner/node11/docker-compose.yml @@ -0,0 +1,6 @@ +version: '3' +services: + app: + image: "epicmorg/gitlab-runner:node11" + build: + context: . diff --git a/linux/ecosystem/gitlab/runner/node12/Dockerfile b/linux/ecosystem/gitlab/runner/node12/Dockerfile index 0d92d36b7..a96c2ede6 100644 --- a/linux/ecosystem/gitlab/runner/node12/Dockerfile +++ b/linux/ecosystem/gitlab/runner/node12/Dockerfile @@ -1,23 +1,33 @@ FROM epicmorg/gitlab-runner:latest LABEL maintainer="EpicMorg DevTeam, developer@epicm.org" + ARG DEBIAN_FRONTEND=noninteractive +ARG K_NODE_MAJOR_VERSION=12 +ARG K_NODE_VERSION=${K_NODE_MAJOR_VERSION}.22.9 +ARG K_NODE_URL=https://nodejs.org/dist/v${K_NODE_VERSION}/node-v${K_NODE_VERSION}-linux-x64.tar.gz +ARG K_NODE_HEADERS_URL=https://nodejs.org/dist/v${K_NODE_VERSION}/node-v${K_NODE_VERSION}-headers.tar.gz + ################################################################## # Node.js 12.x ################################################################## -RUN groupadd node && \ - useradd --gid node --shell /bin/bash --create-home node +RUN groupadd -g 1337 node && \ + useradd -u 1337 --gid node --shell /bin/bash --create-home node -RUN curl -sL https://deb.nodesource.com/setup_12.x | bash - && \ - curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | sudo apt-key add - && \ - echo "deb https://nightly.yarnpkg.com/debian/ nightly main" > /etc/apt/sources.list.d/yarn.list && \ - apt-get update && \ - apt-get install -y nodejs yarn && \ - npm install -g pnpm +RUN curl --user-agent "Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Firefox/81.0" --location ${K_NODE_URL}?$(date +%s) \ + --header 'Cache-Control: no-cache, no-store' \ + --header 'Pragma: no-cache' | tar xzv --strip-components=1 --directory /usr/local/ && \ + rm -rfv /usr/local/CHANGELOG.md /usr/local/LICENSE /usr/local/README.md -# curl -L https://www.npmjs.com/install.sh | sh -# npm install -g npm +RUN curl --user-agent "Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Firefox/81.0" --location ${K_NODE_HEADERS_URL}?$(date +%s) \ + --header 'Cache-Control: no-cache, no-store' \ + --header 'Pragma: no-cache' | tar xzv --strip-components=1 --directory /usr/local/ +RUN npm install -g pnpm@6 yarn + +################################################################## +# Version after install +################################################################## RUN echo "=============================================" && \ echo node $(node --version) && \ echo npm $(npm --version) && \ @@ -26,11 +36,11 @@ RUN echo "=============================================" && \ echo "=============================================" ################################################################## -# cleaninig up +# cleanup ################################################################## -RUN apt clean -y && \ - apt-get clean all && \ - apt autoclean -y && \ - rm -rfv /var/lib/apt/lists/* && \ - rm -rfv /var/cache/apt/archives/*.deb && \ - rm -rfv /tmp/* \ No newline at end of file +RUN apt-get purge policykit-1 -y && \ +apt-get clean -y && \ +apt-get autoclean -y && \ +rm -rfv /var/lib/apt/lists/* && \ +rm -rfv /var/cache/apt/archives/*.deb && \ +rm -rfv /tmp/* diff --git a/linux/ecosystem/gitlab/runner/node12/README.md b/linux/ecosystem/gitlab/runner/node12/README.md index e69de29bb..b53fe01e8 100644 --- a/linux/ecosystem/gitlab/runner/node12/README.md +++ b/linux/ecosystem/gitlab/runner/node12/README.md @@ -0,0 +1,93 @@ +## TeamCity Minimal Build Agent + +[](https://confluence.jetbrains.com/display/ALL/JetBrains+on+GitHub) + +This is an official [JetBrains TeamCity](https://www.jetbrains.com/teamcity/) minimal build agent image. + + More details about tags and components are [here](https://github.com/JetBrains/teamcity-docker-images/blob/master/generated/teamcity-minimal-agent.md). + +The [TeamCity build agent](https://www.jetbrains.com/help/teamcity/build-agent.html) connects to the TeamCity server and spawns the actual build processes. +You can use the ```jetbrains/teamcity-server``` image to run a TeamCity server. + +This minimal image adds just a TeamCity agent without any tools like VCS clients, etc. It is suitable for simple builds and can serve as a base for your custom images. For Java or .NET development we recommend using the default build agent image [jetbrains/teamcity-agent](https://hub.docker.com/r/jetbrains/teamcity-agent/). + +## How to Use This Image + +Pull the TeamCity minimal image from the Docker Hub Repository: + +``` +jetbrains/teamcity-minimal-agent +``` +  +and use the following command to start a container with TeamCity agent running inside +a Linux container: + +``` +docker run -it -e SERVER_URL="" \ + -v :/data/teamcity_agent/conf \ + jetbrains/teamcity-minimal-agent +``` +  +or a Windows container: +``` +docker run -it -e SERVER_URL="" + -v :C:/BuildAgent/conf + jetbrains/teamcity-minimal-agent +``` +where `` is the full URL for TeamCity server, accessible by the agent. Note that `localhost` will not generally not work as it will refer to the `localhost` inside the container. +`` is the host machine directory to serve as the TeamCity agent config directory. We recommend providing this binding in order to persist the agent configuration, e.g. authorization on the server. Note that you should map a different folder for every new agent you create. + +Since version 2020.1, TeamCity agent Docker images __run under a non-root user__. Refer to our [upgrade notes](https://www.jetbrains.com/help/teamcity/upgrade-notes.html#UpgradeNotes-AgentDockerimagesrunundernon-rootuser) for information on possible affected use cases. + +When you run the agent for the first time, you should authorize it via the TeamCity server UI: go to the **Unauthorized Agents** page in your browser. See [more details](https://www.jetbrains.com/help/teamcity/build-agent.html). + +All information about agent authorization is stored in agent's configuration folder. If you stop the container with the agent and then start a new one with the same config folder, the agent's name and authorization state will be preserved. + +TeamCity agent does not need manual upgrade: it will upgrade itself automatically on connecting to an upgraded server. + +### Agent Image Environment Variables + +- **SERVER_URL** - URL of the TeamCity server agent will connect to +- **AGENT_NAME** - (optional) Name of the agent in TeamCity UI, autogenerated if omitted +- **AGENT_TOKEN** - (optional) Agent authorization token, if unset, the agent should be [authorized](https://www.jetbrains.com/help/teamcity/build-agent.html#BuildAgent-BuildAgentStatus) via TeamCity UI. +- **OWN_ADDRESS** - (optional, linux only) IP address build agent binds to, autodetected +- **OWN_PORT** - (optional, linux only) Port build agent binds to, 9090 by default + +### Windows Containers Limitations + +The details on the known problems in Windows containers are available in the [TeamCity documentation](https://www.jetbrains.com/help/teamcity/known-issues.html#KnownIssues-WindowsDockerContainers). + +## Customization + +You can customize the image via the usual Docker procedure: + +1. Run the image +``` +docker run -it -e SERVER_URL="" \ + -v :/data/teamcity_agent/conf \ + --name="my-customized-agent" \ + jetbrains/teamcity-minimal-agent \ +``` +2. Enter the container +``` +docker exec -it my-customized-agent bash +``` + +3. Change whatever you need +4. Exit and [create a new image](https://docs.docker.com/engine/reference/commandline/commit/) from the container +``` +docker commit my-customized-agent +``` + +## License + +The image is available under the [TeamCity license](https://www.jetbrains.com/teamcity/buy/license.html). +TeamCity is free for perpetual use with the limitation of 100 build configurations (jobs) and 3 agents. [Licensing details](https://www.jetbrains.com/help/teamcity/licensing-policy.html). + +## Feedback + +Report issues of suggestions to the official TeamCity [issue tracker](https://youtrack.jetbrains.com/issues/TW). + +## Other TeamCity Images +* [TeamCity Server](https://hub.docker.com/r/jetbrains/teamcity-server/) +* [Build Agent](https://hub.docker.com/r/jetbrains/teamcity-agent/) diff --git a/linux/ecosystem/gitlab/runner/node13/Dockerfile b/linux/ecosystem/gitlab/runner/node13/Dockerfile new file mode 100644 index 000000000..90b4542ac --- /dev/null +++ b/linux/ecosystem/gitlab/runner/node13/Dockerfile @@ -0,0 +1,46 @@ +FROM epicmorg/gitlab-runner:latest +LABEL maintainer="EpicMorg DevTeam, developer@epicm.org" + +ARG DEBIAN_FRONTEND=noninteractive + +ARG K_NODE_MAJOR_VERSION=13 +ARG K_NODE_VERSION=${K_NODE_MAJOR_VERSION}.14.0 +ARG K_NODE_URL=https://nodejs.org/dist/v${K_NODE_VERSION}/node-v${K_NODE_VERSION}-linux-x64.tar.gz +ARG K_NODE_HEADERS_URL=https://nodejs.org/dist/v${K_NODE_VERSION}/node-v${K_NODE_VERSION}-headers.tar.gz + +################################################################## +# Node.js 13.x +################################################################## +RUN groupadd -g 1337 node && \ + useradd -u 1337 --gid node --shell /bin/bash --create-home node + +RUN curl --user-agent "Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Firefox/81.0" --location ${K_NODE_URL}?$(date +%s) \ + --header 'Cache-Control: no-cache, no-store' \ + --header 'Pragma: no-cache' | tar xzv --strip-components=1 --directory /usr/local/ && \ + rm -rfv /usr/local/CHANGELOG.md /usr/local/LICENSE /usr/local/README.md + +RUN curl --user-agent "Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Firefox/81.0" --location ${K_NODE_HEADERS_URL}?$(date +%s) \ + --header 'Cache-Control: no-cache, no-store' \ + --header 'Pragma: no-cache' | tar xzv --strip-components=1 --directory /usr/local/ + +RUN npm install -g pnpm@6 yarn + +################################################################## +# Version after install +################################################################## +RUN echo "=============================================" && \ + echo node $(node --version) && \ + echo npm $(npm --version) && \ + echo yarn $(yarn --version) && \ + echo pnpm $(pnpm --version) && \ + echo "=============================================" + +################################################################## +# cleanup +################################################################## +RUN apt-get purge policykit-1 -y && \ +apt-get clean -y && \ +apt-get autoclean -y && \ +rm -rfv /var/lib/apt/lists/* && \ +rm -rfv /var/cache/apt/archives/*.deb && \ +rm -rfv /tmp/* diff --git a/linux/ecosystem/nodejs/outdated/node15/Makefile b/linux/ecosystem/gitlab/runner/node13/Makefile similarity index 100% rename from linux/ecosystem/nodejs/outdated/node15/Makefile rename to linux/ecosystem/gitlab/runner/node13/Makefile diff --git a/linux/ecosystem/nodejs/outdated/node12/README.md b/linux/ecosystem/gitlab/runner/node13/README.md similarity index 100% rename from linux/ecosystem/nodejs/outdated/node12/README.md rename to linux/ecosystem/gitlab/runner/node13/README.md diff --git a/linux/ecosystem/gitlab/runner/node13/docker-compose.yml b/linux/ecosystem/gitlab/runner/node13/docker-compose.yml new file mode 100644 index 000000000..0e03f843e --- /dev/null +++ b/linux/ecosystem/gitlab/runner/node13/docker-compose.yml @@ -0,0 +1,6 @@ +version: '3' +services: + app: + image: "epicmorg/gitlab-runner:node13" + build: + context: . diff --git a/linux/ecosystem/gitlab/runner/node14/Dockerfile b/linux/ecosystem/gitlab/runner/node14/Dockerfile index a11cb18d3..23468db13 100644 --- a/linux/ecosystem/gitlab/runner/node14/Dockerfile +++ b/linux/ecosystem/gitlab/runner/node14/Dockerfile @@ -1,23 +1,33 @@ FROM epicmorg/gitlab-runner:latest LABEL maintainer="EpicMorg DevTeam, developer@epicm.org" + ARG DEBIAN_FRONTEND=noninteractive +ARG K_NODE_MAJOR_VERSION=14 +ARG K_NODE_VERSION=${K_NODE_MAJOR_VERSION}.21.3 +ARG K_NODE_URL=https://nodejs.org/dist/v${K_NODE_VERSION}/node-v${K_NODE_VERSION}-linux-x64.tar.gz +ARG K_NODE_HEADERS_URL=https://nodejs.org/dist/v${K_NODE_VERSION}/node-v${K_NODE_VERSION}-headers.tar.gz + ################################################################## # Node.js 14.x ################################################################## -RUN groupadd node && \ - useradd --gid node --shell /bin/bash --create-home node +RUN groupadd -g 1337 node && \ + useradd -u 1337 --gid node --shell /bin/bash --create-home node -RUN curl -sL https://deb.nodesource.com/setup_14.x | bash - && \ - curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | sudo apt-key add - && \ - echo "deb https://nightly.yarnpkg.com/debian/ nightly main" > /etc/apt/sources.list.d/yarn.list && \ - apt-get update && \ - apt-get install -y nodejs yarn && \ - npm install -g pnpm +RUN curl --user-agent "Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Firefox/81.0" --location ${K_NODE_URL}?$(date +%s) \ + --header 'Cache-Control: no-cache, no-store' \ + --header 'Pragma: no-cache' | tar xzv --strip-components=1 --directory /usr/local/ && \ + rm -rfv /usr/local/CHANGELOG.md /usr/local/LICENSE /usr/local/README.md -# curl -L https://www.npmjs.com/install.sh | sh -# npm install -g npm +RUN curl --user-agent "Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Firefox/81.0" --location ${K_NODE_HEADERS_URL}?$(date +%s) \ + --header 'Cache-Control: no-cache, no-store' \ + --header 'Pragma: no-cache' | tar xzv --strip-components=1 --directory /usr/local/ +RUN npm install -g pnpm@7 yarn + +################################################################## +# Version after install +################################################################## RUN echo "=============================================" && \ echo node $(node --version) && \ echo npm $(npm --version) && \ @@ -26,11 +36,11 @@ RUN echo "=============================================" && \ echo "=============================================" ################################################################## -# cleaninig up +# cleanup ################################################################## -RUN apt clean -y && \ - apt-get clean all && \ - apt autoclean -y && \ - rm -rfv /var/lib/apt/lists/* && \ - rm -rfv /var/cache/apt/archives/*.deb && \ - rm -rfv /tmp/* +RUN apt-get purge policykit-1 -y && \ +apt-get clean -y && \ +apt-get autoclean -y && \ +rm -rfv /var/lib/apt/lists/* && \ +rm -rfv /var/cache/apt/archives/*.deb && \ +rm -rfv /tmp/* diff --git a/linux/ecosystem/gitlab/runner/node14/README.md b/linux/ecosystem/gitlab/runner/node14/README.md index e69de29bb..b53fe01e8 100644 --- a/linux/ecosystem/gitlab/runner/node14/README.md +++ b/linux/ecosystem/gitlab/runner/node14/README.md @@ -0,0 +1,93 @@ +## TeamCity Minimal Build Agent + +[](https://confluence.jetbrains.com/display/ALL/JetBrains+on+GitHub) + +This is an official [JetBrains TeamCity](https://www.jetbrains.com/teamcity/) minimal build agent image. + + More details about tags and components are [here](https://github.com/JetBrains/teamcity-docker-images/blob/master/generated/teamcity-minimal-agent.md). + +The [TeamCity build agent](https://www.jetbrains.com/help/teamcity/build-agent.html) connects to the TeamCity server and spawns the actual build processes. +You can use the ```jetbrains/teamcity-server``` image to run a TeamCity server. + +This minimal image adds just a TeamCity agent without any tools like VCS clients, etc. It is suitable for simple builds and can serve as a base for your custom images. For Java or .NET development we recommend using the default build agent image [jetbrains/teamcity-agent](https://hub.docker.com/r/jetbrains/teamcity-agent/). + +## How to Use This Image + +Pull the TeamCity minimal image from the Docker Hub Repository: + +``` +jetbrains/teamcity-minimal-agent +``` +  +and use the following command to start a container with TeamCity agent running inside +a Linux container: + +``` +docker run -it -e SERVER_URL="" \ + -v :/data/teamcity_agent/conf \ + jetbrains/teamcity-minimal-agent +``` +  +or a Windows container: +``` +docker run -it -e SERVER_URL="" + -v :C:/BuildAgent/conf + jetbrains/teamcity-minimal-agent +``` +where `` is the full URL for TeamCity server, accessible by the agent. Note that `localhost` will not generally not work as it will refer to the `localhost` inside the container. +`` is the host machine directory to serve as the TeamCity agent config directory. We recommend providing this binding in order to persist the agent configuration, e.g. authorization on the server. Note that you should map a different folder for every new agent you create. + +Since version 2020.1, TeamCity agent Docker images __run under a non-root user__. Refer to our [upgrade notes](https://www.jetbrains.com/help/teamcity/upgrade-notes.html#UpgradeNotes-AgentDockerimagesrunundernon-rootuser) for information on possible affected use cases. + +When you run the agent for the first time, you should authorize it via the TeamCity server UI: go to the **Unauthorized Agents** page in your browser. See [more details](https://www.jetbrains.com/help/teamcity/build-agent.html). + +All information about agent authorization is stored in agent's configuration folder. If you stop the container with the agent and then start a new one with the same config folder, the agent's name and authorization state will be preserved. + +TeamCity agent does not need manual upgrade: it will upgrade itself automatically on connecting to an upgraded server. + +### Agent Image Environment Variables + +- **SERVER_URL** - URL of the TeamCity server agent will connect to +- **AGENT_NAME** - (optional) Name of the agent in TeamCity UI, autogenerated if omitted +- **AGENT_TOKEN** - (optional) Agent authorization token, if unset, the agent should be [authorized](https://www.jetbrains.com/help/teamcity/build-agent.html#BuildAgent-BuildAgentStatus) via TeamCity UI. +- **OWN_ADDRESS** - (optional, linux only) IP address build agent binds to, autodetected +- **OWN_PORT** - (optional, linux only) Port build agent binds to, 9090 by default + +### Windows Containers Limitations + +The details on the known problems in Windows containers are available in the [TeamCity documentation](https://www.jetbrains.com/help/teamcity/known-issues.html#KnownIssues-WindowsDockerContainers). + +## Customization + +You can customize the image via the usual Docker procedure: + +1. Run the image +``` +docker run -it -e SERVER_URL="" \ + -v :/data/teamcity_agent/conf \ + --name="my-customized-agent" \ + jetbrains/teamcity-minimal-agent \ +``` +2. Enter the container +``` +docker exec -it my-customized-agent bash +``` + +3. Change whatever you need +4. Exit and [create a new image](https://docs.docker.com/engine/reference/commandline/commit/) from the container +``` +docker commit my-customized-agent +``` + +## License + +The image is available under the [TeamCity license](https://www.jetbrains.com/teamcity/buy/license.html). +TeamCity is free for perpetual use with the limitation of 100 build configurations (jobs) and 3 agents. [Licensing details](https://www.jetbrains.com/help/teamcity/licensing-policy.html). + +## Feedback + +Report issues of suggestions to the official TeamCity [issue tracker](https://youtrack.jetbrains.com/issues/TW). + +## Other TeamCity Images +* [TeamCity Server](https://hub.docker.com/r/jetbrains/teamcity-server/) +* [Build Agent](https://hub.docker.com/r/jetbrains/teamcity-agent/) diff --git a/linux/ecosystem/gitlab/runner/node15/Dockerfile b/linux/ecosystem/gitlab/runner/node15/Dockerfile index 648ae807a..ce2e6f8a0 100644 --- a/linux/ecosystem/gitlab/runner/node15/Dockerfile +++ b/linux/ecosystem/gitlab/runner/node15/Dockerfile @@ -1,36 +1,47 @@ FROM epicmorg/gitlab-runner:latest LABEL maintainer="EpicMorg DevTeam, developer@epicm.org" + ARG DEBIAN_FRONTEND=noninteractive +ARG K_NODE_MAJOR_VERSION=15 +ARG K_NODE_VERSION=${K_NODE_MAJOR_VERSION}.14.0 +ARG K_NODE_URL=https://nodejs.org/dist/v${K_NODE_VERSION}/node-v${K_NODE_VERSION}-linux-x64.tar.gz +ARG K_NODE_HEADERS_URL=https://nodejs.org/dist/v${K_NODE_VERSION}/node-v${K_NODE_VERSION}-headers.tar.gz + ################################################################## # Node.js 15.x ################################################################## -RUN groupadd node && \ - useradd --gid node --shell /bin/bash --create-home node +RUN groupadd -g 1337 node && \ + useradd -u 1337 --gid node --shell /bin/bash --create-home node -RUN curl -sL https://deb.nodesource.com/setup_15.x | bash - && \ - curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | sudo apt-key add - && \ - echo "deb https://nightly.yarnpkg.com/debian/ nightly main" > /etc/apt/sources.list.d/yarn.list && \ - apt-get update && \ - apt-get install -y nodejs yarn && \ - npm install -g pnpm +RUN curl --user-agent "Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Firefox/81.0" --location ${K_NODE_URL}?$(date +%s) \ + --header 'Cache-Control: no-cache, no-store' \ + --header 'Pragma: no-cache' | tar xzv --strip-components=1 --directory /usr/local/ && \ + rm -rfv /usr/local/CHANGELOG.md /usr/local/LICENSE /usr/local/README.md -# curl -L https://www.npmjs.com/install.sh | sh -# npm install -g npm +RUN curl --user-agent "Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Firefox/81.0" --location ${K_NODE_HEADERS_URL}?$(date +%s) \ + --header 'Cache-Control: no-cache, no-store' \ + --header 'Pragma: no-cache' | tar xzv --strip-components=1 --directory /usr/local/ +#RUN npm install -g pnpm yarn +RUN npm install -g yarn + +################################################################## +# Version after install +################################################################## RUN echo "=============================================" && \ echo node $(node --version) && \ echo npm $(npm --version) && \ echo yarn $(yarn --version) && \ - echo pnpm $(pnpm --version) && \ +# echo pnpm $(pnpm --version) && \ echo "=============================================" ################################################################## -# cleaninig up +# cleanup ################################################################## -RUN apt clean -y && \ - apt-get clean all && \ - apt autoclean -y && \ - rm -rfv /var/lib/apt/lists/* && \ - rm -rfv /var/cache/apt/archives/*.deb && \ - rm -rfv /tmp/* +RUN apt-get purge policykit-1 -y && \ +apt-get clean -y && \ +apt-get autoclean -y && \ +rm -rfv /var/lib/apt/lists/* && \ +rm -rfv /var/cache/apt/archives/*.deb && \ +rm -rfv /tmp/* diff --git a/linux/ecosystem/gitlab/runner/node15/README.md b/linux/ecosystem/gitlab/runner/node15/README.md index e69de29bb..b53fe01e8 100644 --- a/linux/ecosystem/gitlab/runner/node15/README.md +++ b/linux/ecosystem/gitlab/runner/node15/README.md @@ -0,0 +1,93 @@ +## TeamCity Minimal Build Agent + +[](https://confluence.jetbrains.com/display/ALL/JetBrains+on+GitHub) + +This is an official [JetBrains TeamCity](https://www.jetbrains.com/teamcity/) minimal build agent image. + + More details about tags and components are [here](https://github.com/JetBrains/teamcity-docker-images/blob/master/generated/teamcity-minimal-agent.md). + +The [TeamCity build agent](https://www.jetbrains.com/help/teamcity/build-agent.html) connects to the TeamCity server and spawns the actual build processes. +You can use the ```jetbrains/teamcity-server``` image to run a TeamCity server. + +This minimal image adds just a TeamCity agent without any tools like VCS clients, etc. It is suitable for simple builds and can serve as a base for your custom images. For Java or .NET development we recommend using the default build agent image [jetbrains/teamcity-agent](https://hub.docker.com/r/jetbrains/teamcity-agent/). + +## How to Use This Image + +Pull the TeamCity minimal image from the Docker Hub Repository: + +``` +jetbrains/teamcity-minimal-agent +``` +  +and use the following command to start a container with TeamCity agent running inside +a Linux container: + +``` +docker run -it -e SERVER_URL="" \ + -v :/data/teamcity_agent/conf \ + jetbrains/teamcity-minimal-agent +``` +  +or a Windows container: +``` +docker run -it -e SERVER_URL="" + -v :C:/BuildAgent/conf + jetbrains/teamcity-minimal-agent +``` +where `` is the full URL for TeamCity server, accessible by the agent. Note that `localhost` will not generally not work as it will refer to the `localhost` inside the container. +`` is the host machine directory to serve as the TeamCity agent config directory. We recommend providing this binding in order to persist the agent configuration, e.g. authorization on the server. Note that you should map a different folder for every new agent you create. + +Since version 2020.1, TeamCity agent Docker images __run under a non-root user__. Refer to our [upgrade notes](https://www.jetbrains.com/help/teamcity/upgrade-notes.html#UpgradeNotes-AgentDockerimagesrunundernon-rootuser) for information on possible affected use cases. + +When you run the agent for the first time, you should authorize it via the TeamCity server UI: go to the **Unauthorized Agents** page in your browser. See [more details](https://www.jetbrains.com/help/teamcity/build-agent.html). + +All information about agent authorization is stored in agent's configuration folder. If you stop the container with the agent and then start a new one with the same config folder, the agent's name and authorization state will be preserved. + +TeamCity agent does not need manual upgrade: it will upgrade itself automatically on connecting to an upgraded server. + +### Agent Image Environment Variables + +- **SERVER_URL** - URL of the TeamCity server agent will connect to +- **AGENT_NAME** - (optional) Name of the agent in TeamCity UI, autogenerated if omitted +- **AGENT_TOKEN** - (optional) Agent authorization token, if unset, the agent should be [authorized](https://www.jetbrains.com/help/teamcity/build-agent.html#BuildAgent-BuildAgentStatus) via TeamCity UI. +- **OWN_ADDRESS** - (optional, linux only) IP address build agent binds to, autodetected +- **OWN_PORT** - (optional, linux only) Port build agent binds to, 9090 by default + +### Windows Containers Limitations + +The details on the known problems in Windows containers are available in the [TeamCity documentation](https://www.jetbrains.com/help/teamcity/known-issues.html#KnownIssues-WindowsDockerContainers). + +## Customization + +You can customize the image via the usual Docker procedure: + +1. Run the image +``` +docker run -it -e SERVER_URL="" \ + -v :/data/teamcity_agent/conf \ + --name="my-customized-agent" \ + jetbrains/teamcity-minimal-agent \ +``` +2. Enter the container +``` +docker exec -it my-customized-agent bash +``` + +3. Change whatever you need +4. Exit and [create a new image](https://docs.docker.com/engine/reference/commandline/commit/) from the container +``` +docker commit my-customized-agent +``` + +## License + +The image is available under the [TeamCity license](https://www.jetbrains.com/teamcity/buy/license.html). +TeamCity is free for perpetual use with the limitation of 100 build configurations (jobs) and 3 agents. [Licensing details](https://www.jetbrains.com/help/teamcity/licensing-policy.html). + +## Feedback + +Report issues of suggestions to the official TeamCity [issue tracker](https://youtrack.jetbrains.com/issues/TW). + +## Other TeamCity Images +* [TeamCity Server](https://hub.docker.com/r/jetbrains/teamcity-server/) +* [Build Agent](https://hub.docker.com/r/jetbrains/teamcity-agent/) diff --git a/linux/ecosystem/gitlab/runner/node16/Dockerfile b/linux/ecosystem/gitlab/runner/node16/Dockerfile index e3f46c033..b3185f904 100644 --- a/linux/ecosystem/gitlab/runner/node16/Dockerfile +++ b/linux/ecosystem/gitlab/runner/node16/Dockerfile @@ -1,36 +1,47 @@ FROM epicmorg/gitlab-runner:latest LABEL maintainer="EpicMorg DevTeam, developer@epicm.org" + ARG DEBIAN_FRONTEND=noninteractive +ARG K_NODE_MAJOR_VERSION=16 +ARG K_NODE_VERSION=${K_NODE_MAJOR_VERSION}.20.2 +ARG K_NODE_URL=https://nodejs.org/dist/v${K_NODE_VERSION}/node-v${K_NODE_VERSION}-linux-x64.tar.gz +ARG K_NODE_HEADERS_URL=https://nodejs.org/dist/v${K_NODE_VERSION}/node-v${K_NODE_VERSION}-headers.tar.gz + ################################################################## # Node.js 16.x ################################################################## -RUN groupadd node && \ - useradd --gid node --shell /bin/bash --create-home node +RUN groupadd -g 1337 node && \ + useradd -u 1337 --gid node --shell /bin/bash --create-home node -RUN curl -sL https://deb.nodesource.com/setup_16.x | bash - && \ - curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | sudo apt-key add - && \ - echo "deb https://nightly.yarnpkg.com/debian/ nightly main" > /etc/apt/sources.list.d/yarn.list && \ - apt-get update && \ - apt-get install -y nodejs yarn && \ - npm install -g pnpm +RUN curl --user-agent "Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Firefox/81.0" --location ${K_NODE_URL}?$(date +%s) \ + --header 'Cache-Control: no-cache, no-store' \ + --header 'Pragma: no-cache' | tar xzv --strip-components=1 --directory /usr/local/ && \ + rm -rfv /usr/local/CHANGELOG.md /usr/local/LICENSE /usr/local/README.md -# curl -L https://www.npmjs.com/install.sh | sh -# npm install -g npm +RUN curl --user-agent "Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Firefox/81.0" --location ${K_NODE_HEADERS_URL}?$(date +%s) \ + --header 'Cache-Control: no-cache, no-store' \ + --header 'Pragma: no-cache' | tar xzv --strip-components=1 --directory /usr/local/ +#RUN npm install -g pnpm yarn +RUN npm install -g yarn + +################################################################## +# Version after install +################################################################## RUN echo "=============================================" && \ echo node $(node --version) && \ echo npm $(npm --version) && \ echo yarn $(yarn --version) && \ - echo pnpm $(pnpm --version) && \ +# echo pnpm $(pnpm --version) && \ echo "=============================================" ################################################################## -# cleaninig up +# cleanup ################################################################## -RUN apt clean -y && \ - apt-get clean all && \ - apt autoclean -y && \ - rm -rfv /var/lib/apt/lists/* && \ - rm -rfv /var/cache/apt/archives/*.deb && \ - rm -rfv /tmp/* +RUN apt-get purge policykit-1 -y && \ +apt-get clean -y && \ +apt-get autoclean -y && \ +rm -rfv /var/lib/apt/lists/* && \ +rm -rfv /var/cache/apt/archives/*.deb && \ +rm -rfv /tmp/* diff --git a/linux/ecosystem/gitlab/runner/node16/README.md b/linux/ecosystem/gitlab/runner/node16/README.md index e69de29bb..b53fe01e8 100644 --- a/linux/ecosystem/gitlab/runner/node16/README.md +++ b/linux/ecosystem/gitlab/runner/node16/README.md @@ -0,0 +1,93 @@ +## TeamCity Minimal Build Agent + +[](https://confluence.jetbrains.com/display/ALL/JetBrains+on+GitHub) + +This is an official [JetBrains TeamCity](https://www.jetbrains.com/teamcity/) minimal build agent image. + + More details about tags and components are [here](https://github.com/JetBrains/teamcity-docker-images/blob/master/generated/teamcity-minimal-agent.md). + +The [TeamCity build agent](https://www.jetbrains.com/help/teamcity/build-agent.html) connects to the TeamCity server and spawns the actual build processes. +You can use the ```jetbrains/teamcity-server``` image to run a TeamCity server. + +This minimal image adds just a TeamCity agent without any tools like VCS clients, etc. It is suitable for simple builds and can serve as a base for your custom images. For Java or .NET development we recommend using the default build agent image [jetbrains/teamcity-agent](https://hub.docker.com/r/jetbrains/teamcity-agent/). + +## How to Use This Image + +Pull the TeamCity minimal image from the Docker Hub Repository: + +``` +jetbrains/teamcity-minimal-agent +``` +  +and use the following command to start a container with TeamCity agent running inside +a Linux container: + +``` +docker run -it -e SERVER_URL="" \ + -v :/data/teamcity_agent/conf \ + jetbrains/teamcity-minimal-agent +``` +  +or a Windows container: +``` +docker run -it -e SERVER_URL="" + -v :C:/BuildAgent/conf + jetbrains/teamcity-minimal-agent +``` +where `` is the full URL for TeamCity server, accessible by the agent. Note that `localhost` will not generally not work as it will refer to the `localhost` inside the container. +`` is the host machine directory to serve as the TeamCity agent config directory. We recommend providing this binding in order to persist the agent configuration, e.g. authorization on the server. Note that you should map a different folder for every new agent you create. + +Since version 2020.1, TeamCity agent Docker images __run under a non-root user__. Refer to our [upgrade notes](https://www.jetbrains.com/help/teamcity/upgrade-notes.html#UpgradeNotes-AgentDockerimagesrunundernon-rootuser) for information on possible affected use cases. + +When you run the agent for the first time, you should authorize it via the TeamCity server UI: go to the **Unauthorized Agents** page in your browser. See [more details](https://www.jetbrains.com/help/teamcity/build-agent.html). + +All information about agent authorization is stored in agent's configuration folder. If you stop the container with the agent and then start a new one with the same config folder, the agent's name and authorization state will be preserved. + +TeamCity agent does not need manual upgrade: it will upgrade itself automatically on connecting to an upgraded server. + +### Agent Image Environment Variables + +- **SERVER_URL** - URL of the TeamCity server agent will connect to +- **AGENT_NAME** - (optional) Name of the agent in TeamCity UI, autogenerated if omitted +- **AGENT_TOKEN** - (optional) Agent authorization token, if unset, the agent should be [authorized](https://www.jetbrains.com/help/teamcity/build-agent.html#BuildAgent-BuildAgentStatus) via TeamCity UI. +- **OWN_ADDRESS** - (optional, linux only) IP address build agent binds to, autodetected +- **OWN_PORT** - (optional, linux only) Port build agent binds to, 9090 by default + +### Windows Containers Limitations + +The details on the known problems in Windows containers are available in the [TeamCity documentation](https://www.jetbrains.com/help/teamcity/known-issues.html#KnownIssues-WindowsDockerContainers). + +## Customization + +You can customize the image via the usual Docker procedure: + +1. Run the image +``` +docker run -it -e SERVER_URL="" \ + -v :/data/teamcity_agent/conf \ + --name="my-customized-agent" \ + jetbrains/teamcity-minimal-agent \ +``` +2. Enter the container +``` +docker exec -it my-customized-agent bash +``` + +3. Change whatever you need +4. Exit and [create a new image](https://docs.docker.com/engine/reference/commandline/commit/) from the container +``` +docker commit my-customized-agent +``` + +## License + +The image is available under the [TeamCity license](https://www.jetbrains.com/teamcity/buy/license.html). +TeamCity is free for perpetual use with the limitation of 100 build configurations (jobs) and 3 agents. [Licensing details](https://www.jetbrains.com/help/teamcity/licensing-policy.html). + +## Feedback + +Report issues of suggestions to the official TeamCity [issue tracker](https://youtrack.jetbrains.com/issues/TW). + +## Other TeamCity Images +* [TeamCity Server](https://hub.docker.com/r/jetbrains/teamcity-server/) +* [Build Agent](https://hub.docker.com/r/jetbrains/teamcity-agent/) diff --git a/linux/ecosystem/gitlab/runner/node17/Dockerfile b/linux/ecosystem/gitlab/runner/node17/Dockerfile index c693b437d..37e29404e 100644 --- a/linux/ecosystem/gitlab/runner/node17/Dockerfile +++ b/linux/ecosystem/gitlab/runner/node17/Dockerfile @@ -1,36 +1,47 @@ FROM epicmorg/gitlab-runner:latest LABEL maintainer="EpicMorg DevTeam, developer@epicm.org" + ARG DEBIAN_FRONTEND=noninteractive +ARG K_NODE_MAJOR_VERSION=17 +ARG K_NODE_VERSION=${K_NODE_MAJOR_VERSION}.9.1 +ARG K_NODE_URL=https://nodejs.org/dist/v${K_NODE_VERSION}/node-v${K_NODE_VERSION}-linux-x64.tar.gz +ARG K_NODE_HEADERS_URL=https://nodejs.org/dist/v${K_NODE_VERSION}/node-v${K_NODE_VERSION}-headers.tar.gz + ################################################################## # Node.js 17.x ################################################################## -RUN groupadd node && \ - useradd --gid node --shell /bin/bash --create-home node +RUN groupadd -g 1337 node && \ + useradd -u 1337 --gid node --shell /bin/bash --create-home node -RUN curl -sL https://deb.nodesource.com/setup_17.x | bash - && \ - curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | sudo apt-key add - && \ - echo "deb https://nightly.yarnpkg.com/debian/ nightly main" > /etc/apt/sources.list.d/yarn.list && \ - apt-get update && \ - apt-get install -y nodejs yarn && \ - npm install -g pnpm +RUN curl --user-agent "Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Firefox/81.0" --location ${K_NODE_URL}?$(date +%s) \ + --header 'Cache-Control: no-cache, no-store' \ + --header 'Pragma: no-cache' | tar xzv --strip-components=1 --directory /usr/local/ && \ + rm -rfv /usr/local/CHANGELOG.md /usr/local/LICENSE /usr/local/README.md -# curl -L https://www.npmjs.com/install.sh | sh -# npm install -g npm +RUN curl --user-agent "Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Firefox/81.0" --location ${K_NODE_HEADERS_URL}?$(date +%s) \ + --header 'Cache-Control: no-cache, no-store' \ + --header 'Pragma: no-cache' | tar xzv --strip-components=1 --directory /usr/local/ +#RUN npm install -g pnpm yarn +RUN npm install -g yarn + +################################################################## +# Version after install +################################################################## RUN echo "=============================================" && \ echo node $(node --version) && \ echo npm $(npm --version) && \ echo yarn $(yarn --version) && \ - echo pnpm $(pnpm --version) && \ +# echo pnpm $(pnpm --version) && \ echo "=============================================" ################################################################## -# cleaninig up +# cleanup ################################################################## -RUN apt clean -y && \ - apt-get clean all && \ - apt autoclean -y && \ - rm -rfv /var/lib/apt/lists/* && \ - rm -rfv /var/cache/apt/archives/*.deb && \ - rm -rfv /tmp/* +RUN apt-get purge policykit-1 -y && \ +apt-get clean -y && \ +apt-get autoclean -y && \ +rm -rfv /var/lib/apt/lists/* && \ +rm -rfv /var/cache/apt/archives/*.deb && \ +rm -rfv /tmp/* diff --git a/linux/ecosystem/gitlab/runner/node17/README.md b/linux/ecosystem/gitlab/runner/node17/README.md index e69de29bb..b53fe01e8 100644 --- a/linux/ecosystem/gitlab/runner/node17/README.md +++ b/linux/ecosystem/gitlab/runner/node17/README.md @@ -0,0 +1,93 @@ +## TeamCity Minimal Build Agent + +[](https://confluence.jetbrains.com/display/ALL/JetBrains+on+GitHub) + +This is an official [JetBrains TeamCity](https://www.jetbrains.com/teamcity/) minimal build agent image. + + More details about tags and components are [here](https://github.com/JetBrains/teamcity-docker-images/blob/master/generated/teamcity-minimal-agent.md). + +The [TeamCity build agent](https://www.jetbrains.com/help/teamcity/build-agent.html) connects to the TeamCity server and spawns the actual build processes. +You can use the ```jetbrains/teamcity-server``` image to run a TeamCity server. + +This minimal image adds just a TeamCity agent without any tools like VCS clients, etc. It is suitable for simple builds and can serve as a base for your custom images. For Java or .NET development we recommend using the default build agent image [jetbrains/teamcity-agent](https://hub.docker.com/r/jetbrains/teamcity-agent/). + +## How to Use This Image + +Pull the TeamCity minimal image from the Docker Hub Repository: + +``` +jetbrains/teamcity-minimal-agent +``` +  +and use the following command to start a container with TeamCity agent running inside +a Linux container: + +``` +docker run -it -e SERVER_URL="" \ + -v :/data/teamcity_agent/conf \ + jetbrains/teamcity-minimal-agent +``` +  +or a Windows container: +``` +docker run -it -e SERVER_URL="" + -v :C:/BuildAgent/conf + jetbrains/teamcity-minimal-agent +``` +where `` is the full URL for TeamCity server, accessible by the agent. Note that `localhost` will not generally not work as it will refer to the `localhost` inside the container. +`` is the host machine directory to serve as the TeamCity agent config directory. We recommend providing this binding in order to persist the agent configuration, e.g. authorization on the server. Note that you should map a different folder for every new agent you create. + +Since version 2020.1, TeamCity agent Docker images __run under a non-root user__. Refer to our [upgrade notes](https://www.jetbrains.com/help/teamcity/upgrade-notes.html#UpgradeNotes-AgentDockerimagesrunundernon-rootuser) for information on possible affected use cases. + +When you run the agent for the first time, you should authorize it via the TeamCity server UI: go to the **Unauthorized Agents** page in your browser. See [more details](https://www.jetbrains.com/help/teamcity/build-agent.html). + +All information about agent authorization is stored in agent's configuration folder. If you stop the container with the agent and then start a new one with the same config folder, the agent's name and authorization state will be preserved. + +TeamCity agent does not need manual upgrade: it will upgrade itself automatically on connecting to an upgraded server. + +### Agent Image Environment Variables + +- **SERVER_URL** - URL of the TeamCity server agent will connect to +- **AGENT_NAME** - (optional) Name of the agent in TeamCity UI, autogenerated if omitted +- **AGENT_TOKEN** - (optional) Agent authorization token, if unset, the agent should be [authorized](https://www.jetbrains.com/help/teamcity/build-agent.html#BuildAgent-BuildAgentStatus) via TeamCity UI. +- **OWN_ADDRESS** - (optional, linux only) IP address build agent binds to, autodetected +- **OWN_PORT** - (optional, linux only) Port build agent binds to, 9090 by default + +### Windows Containers Limitations + +The details on the known problems in Windows containers are available in the [TeamCity documentation](https://www.jetbrains.com/help/teamcity/known-issues.html#KnownIssues-WindowsDockerContainers). + +## Customization + +You can customize the image via the usual Docker procedure: + +1. Run the image +``` +docker run -it -e SERVER_URL="" \ + -v :/data/teamcity_agent/conf \ + --name="my-customized-agent" \ + jetbrains/teamcity-minimal-agent \ +``` +2. Enter the container +``` +docker exec -it my-customized-agent bash +``` + +3. Change whatever you need +4. Exit and [create a new image](https://docs.docker.com/engine/reference/commandline/commit/) from the container +``` +docker commit my-customized-agent +``` + +## License + +The image is available under the [TeamCity license](https://www.jetbrains.com/teamcity/buy/license.html). +TeamCity is free for perpetual use with the limitation of 100 build configurations (jobs) and 3 agents. [Licensing details](https://www.jetbrains.com/help/teamcity/licensing-policy.html). + +## Feedback + +Report issues of suggestions to the official TeamCity [issue tracker](https://youtrack.jetbrains.com/issues/TW). + +## Other TeamCity Images +* [TeamCity Server](https://hub.docker.com/r/jetbrains/teamcity-server/) +* [Build Agent](https://hub.docker.com/r/jetbrains/teamcity-agent/) diff --git a/linux/ecosystem/gitlab/runner/node18/Dockerfile b/linux/ecosystem/gitlab/runner/node18/Dockerfile index 84efbfc91..194fcb280 100644 --- a/linux/ecosystem/gitlab/runner/node18/Dockerfile +++ b/linux/ecosystem/gitlab/runner/node18/Dockerfile @@ -1,23 +1,33 @@ FROM epicmorg/gitlab-runner:latest LABEL maintainer="EpicMorg DevTeam, developer@epicm.org" + ARG DEBIAN_FRONTEND=noninteractive +ARG K_NODE_MAJOR_VERSION=18 +ARG K_NODE_VERSION=${K_NODE_MAJOR_VERSION}.20.3 +ARG K_NODE_URL=https://nodejs.org/dist/v${K_NODE_VERSION}/node-v${K_NODE_VERSION}-linux-x64.tar.gz +ARG K_NODE_HEADERS_URL=https://nodejs.org/dist/v${K_NODE_VERSION}/node-v${K_NODE_VERSION}-headers.tar.gz + ################################################################## # Node.js 18.x ################################################################## -RUN groupadd node && \ - useradd --gid node --shell /bin/bash --create-home node +RUN groupadd -g 1337 node && \ + useradd -u 1337 --gid node --shell /bin/bash --create-home node -RUN curl -sL https://deb.nodesource.com/setup_18.x | bash - && \ - curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | sudo apt-key add - && \ - echo "deb https://nightly.yarnpkg.com/debian/ nightly main" > /etc/apt/sources.list.d/yarn.list && \ - apt-get update && \ - apt-get install -y nodejs yarn && \ - npm install -g pnpm +RUN curl --user-agent "Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Firefox/81.0" --location ${K_NODE_URL}?$(date +%s) \ + --header 'Cache-Control: no-cache, no-store' \ + --header 'Pragma: no-cache' | tar xzv --strip-components=1 --directory /usr/local/ && \ + rm -rfv /usr/local/CHANGELOG.md /usr/local/LICENSE /usr/local/README.md -# curl -L https://www.npmjs.com/install.sh | sh -# npm install -g npm +RUN curl --user-agent "Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Firefox/81.0" --location ${K_NODE_HEADERS_URL}?$(date +%s) \ + --header 'Cache-Control: no-cache, no-store' \ + --header 'Pragma: no-cache' | tar xzv --strip-components=1 --directory /usr/local/ +RUN npm install -g pnpm yarn + +################################################################## +# Version after install +################################################################## RUN echo "=============================================" && \ echo node $(node --version) && \ echo npm $(npm --version) && \ @@ -26,11 +36,11 @@ RUN echo "=============================================" && \ echo "=============================================" ################################################################## -# cleaninig up +# cleanup ################################################################## -RUN apt clean -y && \ - apt-get clean all && \ - apt autoclean -y && \ - rm -rfv /var/lib/apt/lists/* && \ - rm -rfv /var/cache/apt/archives/*.deb && \ - rm -rfv /tmp/* +RUN apt-get purge policykit-1 -y && \ +apt-get clean -y && \ +apt-get autoclean -y && \ +rm -rfv /var/lib/apt/lists/* && \ +rm -rfv /var/cache/apt/archives/*.deb && \ +rm -rfv /tmp/* diff --git a/linux/ecosystem/gitlab/runner/node18/README.md b/linux/ecosystem/gitlab/runner/node18/README.md index e69de29bb..b53fe01e8 100644 --- a/linux/ecosystem/gitlab/runner/node18/README.md +++ b/linux/ecosystem/gitlab/runner/node18/README.md @@ -0,0 +1,93 @@ +## TeamCity Minimal Build Agent + +[](https://confluence.jetbrains.com/display/ALL/JetBrains+on+GitHub) + +This is an official [JetBrains TeamCity](https://www.jetbrains.com/teamcity/) minimal build agent image. + + More details about tags and components are [here](https://github.com/JetBrains/teamcity-docker-images/blob/master/generated/teamcity-minimal-agent.md). + +The [TeamCity build agent](https://www.jetbrains.com/help/teamcity/build-agent.html) connects to the TeamCity server and spawns the actual build processes. +You can use the ```jetbrains/teamcity-server``` image to run a TeamCity server. + +This minimal image adds just a TeamCity agent without any tools like VCS clients, etc. It is suitable for simple builds and can serve as a base for your custom images. For Java or .NET development we recommend using the default build agent image [jetbrains/teamcity-agent](https://hub.docker.com/r/jetbrains/teamcity-agent/). + +## How to Use This Image + +Pull the TeamCity minimal image from the Docker Hub Repository: + +``` +jetbrains/teamcity-minimal-agent +``` +  +and use the following command to start a container with TeamCity agent running inside +a Linux container: + +``` +docker run -it -e SERVER_URL="" \ + -v :/data/teamcity_agent/conf \ + jetbrains/teamcity-minimal-agent +``` +  +or a Windows container: +``` +docker run -it -e SERVER_URL="" + -v :C:/BuildAgent/conf + jetbrains/teamcity-minimal-agent +``` +where `` is the full URL for TeamCity server, accessible by the agent. Note that `localhost` will not generally not work as it will refer to the `localhost` inside the container. +`` is the host machine directory to serve as the TeamCity agent config directory. We recommend providing this binding in order to persist the agent configuration, e.g. authorization on the server. Note that you should map a different folder for every new agent you create. + +Since version 2020.1, TeamCity agent Docker images __run under a non-root user__. Refer to our [upgrade notes](https://www.jetbrains.com/help/teamcity/upgrade-notes.html#UpgradeNotes-AgentDockerimagesrunundernon-rootuser) for information on possible affected use cases. + +When you run the agent for the first time, you should authorize it via the TeamCity server UI: go to the **Unauthorized Agents** page in your browser. See [more details](https://www.jetbrains.com/help/teamcity/build-agent.html). + +All information about agent authorization is stored in agent's configuration folder. If you stop the container with the agent and then start a new one with the same config folder, the agent's name and authorization state will be preserved. + +TeamCity agent does not need manual upgrade: it will upgrade itself automatically on connecting to an upgraded server. + +### Agent Image Environment Variables + +- **SERVER_URL** - URL of the TeamCity server agent will connect to +- **AGENT_NAME** - (optional) Name of the agent in TeamCity UI, autogenerated if omitted +- **AGENT_TOKEN** - (optional) Agent authorization token, if unset, the agent should be [authorized](https://www.jetbrains.com/help/teamcity/build-agent.html#BuildAgent-BuildAgentStatus) via TeamCity UI. +- **OWN_ADDRESS** - (optional, linux only) IP address build agent binds to, autodetected +- **OWN_PORT** - (optional, linux only) Port build agent binds to, 9090 by default + +### Windows Containers Limitations + +The details on the known problems in Windows containers are available in the [TeamCity documentation](https://www.jetbrains.com/help/teamcity/known-issues.html#KnownIssues-WindowsDockerContainers). + +## Customization + +You can customize the image via the usual Docker procedure: + +1. Run the image +``` +docker run -it -e SERVER_URL="" \ + -v :/data/teamcity_agent/conf \ + --name="my-customized-agent" \ + jetbrains/teamcity-minimal-agent \ +``` +2. Enter the container +``` +docker exec -it my-customized-agent bash +``` + +3. Change whatever you need +4. Exit and [create a new image](https://docs.docker.com/engine/reference/commandline/commit/) from the container +``` +docker commit my-customized-agent +``` + +## License + +The image is available under the [TeamCity license](https://www.jetbrains.com/teamcity/buy/license.html). +TeamCity is free for perpetual use with the limitation of 100 build configurations (jobs) and 3 agents. [Licensing details](https://www.jetbrains.com/help/teamcity/licensing-policy.html). + +## Feedback + +Report issues of suggestions to the official TeamCity [issue tracker](https://youtrack.jetbrains.com/issues/TW). + +## Other TeamCity Images +* [TeamCity Server](https://hub.docker.com/r/jetbrains/teamcity-server/) +* [Build Agent](https://hub.docker.com/r/jetbrains/teamcity-agent/) diff --git a/linux/ecosystem/gitlab/runner/node19/Dockerfile b/linux/ecosystem/gitlab/runner/node19/Dockerfile index 6789addbf..599ff9656 100644 --- a/linux/ecosystem/gitlab/runner/node19/Dockerfile +++ b/linux/ecosystem/gitlab/runner/node19/Dockerfile @@ -1,23 +1,33 @@ FROM epicmorg/gitlab-runner:latest LABEL maintainer="EpicMorg DevTeam, developer@epicm.org" + ARG DEBIAN_FRONTEND=noninteractive +ARG K_NODE_MAJOR_VERSION=19 +ARG K_NODE_VERSION=${K_NODE_MAJOR_VERSION}.9.0 +ARG K_NODE_URL=https://nodejs.org/dist/v${K_NODE_VERSION}/node-v${K_NODE_VERSION}-linux-x64.tar.gz +ARG K_NODE_HEADERS_URL=https://nodejs.org/dist/v${K_NODE_VERSION}/node-v${K_NODE_VERSION}-headers.tar.gz + ################################################################## # Node.js 19.x ################################################################## -RUN groupadd node && \ - useradd --gid node --shell /bin/bash --create-home node +RUN groupadd -g 1337 node && \ + useradd -u 1337 --gid node --shell /bin/bash --create-home node -RUN curl -sL https://deb.nodesource.com/setup_19.x | bash - && \ - curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | sudo apt-key add - && \ - echo "deb https://nightly.yarnpkg.com/debian/ nightly main" > /etc/apt/sources.list.d/yarn.list && \ - apt-get update && \ - apt-get install -y nodejs yarn && \ - npm install -g pnpm +RUN curl --user-agent "Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Firefox/81.0" --location ${K_NODE_URL}?$(date +%s) \ + --header 'Cache-Control: no-cache, no-store' \ + --header 'Pragma: no-cache' | tar xzv --strip-components=1 --directory /usr/local/ && \ + rm -rfv /usr/local/CHANGELOG.md /usr/local/LICENSE /usr/local/README.md -# curl -L https://www.npmjs.com/install.sh | sh -# npm install -g npm +RUN curl --user-agent "Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Firefox/81.0" --location ${K_NODE_HEADERS_URL}?$(date +%s) \ + --header 'Cache-Control: no-cache, no-store' \ + --header 'Pragma: no-cache' | tar xzv --strip-components=1 --directory /usr/local/ +RUN npm install -g pnpm yarn + +################################################################## +# Version after install +################################################################## RUN echo "=============================================" && \ echo node $(node --version) && \ echo npm $(npm --version) && \ @@ -26,11 +36,11 @@ RUN echo "=============================================" && \ echo "=============================================" ################################################################## -# cleaninig up +# cleanup ################################################################## -RUN apt clean -y && \ - apt-get clean all && \ - apt autoclean -y && \ - rm -rfv /var/lib/apt/lists/* && \ - rm -rfv /var/cache/apt/archives/*.deb && \ - rm -rfv /tmp/* +RUN apt-get purge policykit-1 -y && \ +apt-get clean -y && \ +apt-get autoclean -y && \ +rm -rfv /var/lib/apt/lists/* && \ +rm -rfv /var/cache/apt/archives/*.deb && \ +rm -rfv /tmp/* diff --git a/linux/ecosystem/gitlab/runner/node19/README.md b/linux/ecosystem/gitlab/runner/node19/README.md index e69de29bb..b53fe01e8 100644 --- a/linux/ecosystem/gitlab/runner/node19/README.md +++ b/linux/ecosystem/gitlab/runner/node19/README.md @@ -0,0 +1,93 @@ +## TeamCity Minimal Build Agent + +[](https://confluence.jetbrains.com/display/ALL/JetBrains+on+GitHub) + +This is an official [JetBrains TeamCity](https://www.jetbrains.com/teamcity/) minimal build agent image. + + More details about tags and components are [here](https://github.com/JetBrains/teamcity-docker-images/blob/master/generated/teamcity-minimal-agent.md). + +The [TeamCity build agent](https://www.jetbrains.com/help/teamcity/build-agent.html) connects to the TeamCity server and spawns the actual build processes. +You can use the ```jetbrains/teamcity-server``` image to run a TeamCity server. + +This minimal image adds just a TeamCity agent without any tools like VCS clients, etc. It is suitable for simple builds and can serve as a base for your custom images. For Java or .NET development we recommend using the default build agent image [jetbrains/teamcity-agent](https://hub.docker.com/r/jetbrains/teamcity-agent/). + +## How to Use This Image + +Pull the TeamCity minimal image from the Docker Hub Repository: + +``` +jetbrains/teamcity-minimal-agent +``` +  +and use the following command to start a container with TeamCity agent running inside +a Linux container: + +``` +docker run -it -e SERVER_URL="" \ + -v :/data/teamcity_agent/conf \ + jetbrains/teamcity-minimal-agent +``` +  +or a Windows container: +``` +docker run -it -e SERVER_URL="" + -v :C:/BuildAgent/conf + jetbrains/teamcity-minimal-agent +``` +where `` is the full URL for TeamCity server, accessible by the agent. Note that `localhost` will not generally not work as it will refer to the `localhost` inside the container. +`` is the host machine directory to serve as the TeamCity agent config directory. We recommend providing this binding in order to persist the agent configuration, e.g. authorization on the server. Note that you should map a different folder for every new agent you create. + +Since version 2020.1, TeamCity agent Docker images __run under a non-root user__. Refer to our [upgrade notes](https://www.jetbrains.com/help/teamcity/upgrade-notes.html#UpgradeNotes-AgentDockerimagesrunundernon-rootuser) for information on possible affected use cases. + +When you run the agent for the first time, you should authorize it via the TeamCity server UI: go to the **Unauthorized Agents** page in your browser. See [more details](https://www.jetbrains.com/help/teamcity/build-agent.html). + +All information about agent authorization is stored in agent's configuration folder. If you stop the container with the agent and then start a new one with the same config folder, the agent's name and authorization state will be preserved. + +TeamCity agent does not need manual upgrade: it will upgrade itself automatically on connecting to an upgraded server. + +### Agent Image Environment Variables + +- **SERVER_URL** - URL of the TeamCity server agent will connect to +- **AGENT_NAME** - (optional) Name of the agent in TeamCity UI, autogenerated if omitted +- **AGENT_TOKEN** - (optional) Agent authorization token, if unset, the agent should be [authorized](https://www.jetbrains.com/help/teamcity/build-agent.html#BuildAgent-BuildAgentStatus) via TeamCity UI. +- **OWN_ADDRESS** - (optional, linux only) IP address build agent binds to, autodetected +- **OWN_PORT** - (optional, linux only) Port build agent binds to, 9090 by default + +### Windows Containers Limitations + +The details on the known problems in Windows containers are available in the [TeamCity documentation](https://www.jetbrains.com/help/teamcity/known-issues.html#KnownIssues-WindowsDockerContainers). + +## Customization + +You can customize the image via the usual Docker procedure: + +1. Run the image +``` +docker run -it -e SERVER_URL="" \ + -v :/data/teamcity_agent/conf \ + --name="my-customized-agent" \ + jetbrains/teamcity-minimal-agent \ +``` +2. Enter the container +``` +docker exec -it my-customized-agent bash +``` + +3. Change whatever you need +4. Exit and [create a new image](https://docs.docker.com/engine/reference/commandline/commit/) from the container +``` +docker commit my-customized-agent +``` + +## License + +The image is available under the [TeamCity license](https://www.jetbrains.com/teamcity/buy/license.html). +TeamCity is free for perpetual use with the limitation of 100 build configurations (jobs) and 3 agents. [Licensing details](https://www.jetbrains.com/help/teamcity/licensing-policy.html). + +## Feedback + +Report issues of suggestions to the official TeamCity [issue tracker](https://youtrack.jetbrains.com/issues/TW). + +## Other TeamCity Images +* [TeamCity Server](https://hub.docker.com/r/jetbrains/teamcity-server/) +* [Build Agent](https://hub.docker.com/r/jetbrains/teamcity-agent/) diff --git a/linux/ecosystem/gitlab/runner/node20/Dockerfile b/linux/ecosystem/gitlab/runner/node20/Dockerfile index 2c26bde6f..7b23e234b 100644 --- a/linux/ecosystem/gitlab/runner/node20/Dockerfile +++ b/linux/ecosystem/gitlab/runner/node20/Dockerfile @@ -1,23 +1,33 @@ FROM epicmorg/gitlab-runner:latest LABEL maintainer="EpicMorg DevTeam, developer@epicm.org" + ARG DEBIAN_FRONTEND=noninteractive +ARG K_NODE_MAJOR_VERSION=20 +ARG K_NODE_VERSION=${K_NODE_MAJOR_VERSION}.15.0 +ARG K_NODE_URL=https://nodejs.org/dist/v${K_NODE_VERSION}/node-v${K_NODE_VERSION}-linux-x64.tar.gz +ARG K_NODE_HEADERS_URL=https://nodejs.org/dist/v${K_NODE_VERSION}/node-v${K_NODE_VERSION}-headers.tar.gz + ################################################################## # Node.js 20.x ################################################################## -RUN groupadd node && \ - useradd --gid node --shell /bin/bash --create-home node +RUN groupadd -g 1337 node && \ + useradd -u 1337 --gid node --shell /bin/bash --create-home node -RUN curl -sL https://deb.nodesource.com/setup_20.x | bash - && \ - curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | sudo apt-key add - && \ - echo "deb https://nightly.yarnpkg.com/debian/ nightly main" > /etc/apt/sources.list.d/yarn.list && \ - apt-get update && \ - apt-get install -y nodejs yarn && \ - npm install -g pnpm +RUN curl --user-agent "Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Firefox/81.0" --location ${K_NODE_URL}?$(date +%s) \ + --header 'Cache-Control: no-cache, no-store' \ + --header 'Pragma: no-cache' | tar xzv --strip-components=1 --directory /usr/local/ && \ + rm -rfv /usr/local/CHANGELOG.md /usr/local/LICENSE /usr/local/README.md -# curl -L https://www.npmjs.com/install.sh | sh -# npm install -g npm +RUN curl --user-agent "Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Firefox/81.0" --location ${K_NODE_HEADERS_URL}?$(date +%s) \ + --header 'Cache-Control: no-cache, no-store' \ + --header 'Pragma: no-cache' | tar xzv --strip-components=1 --directory /usr/local/ +RUN npm install -g pnpm yarn + +################################################################## +# Version after install +################################################################## RUN echo "=============================================" && \ echo node $(node --version) && \ echo npm $(npm --version) && \ @@ -26,11 +36,11 @@ RUN echo "=============================================" && \ echo "=============================================" ################################################################## -# cleaninig up +# cleanup ################################################################## -RUN apt clean -y && \ - apt-get clean all && \ - apt autoclean -y && \ - rm -rfv /var/lib/apt/lists/* && \ - rm -rfv /var/cache/apt/archives/*.deb && \ - rm -rfv /tmp/* +RUN apt-get purge policykit-1 -y && \ +apt-get clean -y && \ +apt-get autoclean -y && \ +rm -rfv /var/lib/apt/lists/* && \ +rm -rfv /var/cache/apt/archives/*.deb && \ +rm -rfv /tmp/* diff --git a/linux/ecosystem/gitlab/runner/node20/README.md b/linux/ecosystem/gitlab/runner/node20/README.md index e69de29bb..b53fe01e8 100644 --- a/linux/ecosystem/gitlab/runner/node20/README.md +++ b/linux/ecosystem/gitlab/runner/node20/README.md @@ -0,0 +1,93 @@ +## TeamCity Minimal Build Agent + +[](https://confluence.jetbrains.com/display/ALL/JetBrains+on+GitHub) + +This is an official [JetBrains TeamCity](https://www.jetbrains.com/teamcity/) minimal build agent image. + + More details about tags and components are [here](https://github.com/JetBrains/teamcity-docker-images/blob/master/generated/teamcity-minimal-agent.md). + +The [TeamCity build agent](https://www.jetbrains.com/help/teamcity/build-agent.html) connects to the TeamCity server and spawns the actual build processes. +You can use the ```jetbrains/teamcity-server``` image to run a TeamCity server. + +This minimal image adds just a TeamCity agent without any tools like VCS clients, etc. It is suitable for simple builds and can serve as a base for your custom images. For Java or .NET development we recommend using the default build agent image [jetbrains/teamcity-agent](https://hub.docker.com/r/jetbrains/teamcity-agent/). + +## How to Use This Image + +Pull the TeamCity minimal image from the Docker Hub Repository: + +``` +jetbrains/teamcity-minimal-agent +``` +  +and use the following command to start a container with TeamCity agent running inside +a Linux container: + +``` +docker run -it -e SERVER_URL="" \ + -v :/data/teamcity_agent/conf \ + jetbrains/teamcity-minimal-agent +``` +  +or a Windows container: +``` +docker run -it -e SERVER_URL="" + -v :C:/BuildAgent/conf + jetbrains/teamcity-minimal-agent +``` +where `` is the full URL for TeamCity server, accessible by the agent. Note that `localhost` will not generally not work as it will refer to the `localhost` inside the container. +`` is the host machine directory to serve as the TeamCity agent config directory. We recommend providing this binding in order to persist the agent configuration, e.g. authorization on the server. Note that you should map a different folder for every new agent you create. + +Since version 2020.1, TeamCity agent Docker images __run under a non-root user__. Refer to our [upgrade notes](https://www.jetbrains.com/help/teamcity/upgrade-notes.html#UpgradeNotes-AgentDockerimagesrunundernon-rootuser) for information on possible affected use cases. + +When you run the agent for the first time, you should authorize it via the TeamCity server UI: go to the **Unauthorized Agents** page in your browser. See [more details](https://www.jetbrains.com/help/teamcity/build-agent.html). + +All information about agent authorization is stored in agent's configuration folder. If you stop the container with the agent and then start a new one with the same config folder, the agent's name and authorization state will be preserved. + +TeamCity agent does not need manual upgrade: it will upgrade itself automatically on connecting to an upgraded server. + +### Agent Image Environment Variables + +- **SERVER_URL** - URL of the TeamCity server agent will connect to +- **AGENT_NAME** - (optional) Name of the agent in TeamCity UI, autogenerated if omitted +- **AGENT_TOKEN** - (optional) Agent authorization token, if unset, the agent should be [authorized](https://www.jetbrains.com/help/teamcity/build-agent.html#BuildAgent-BuildAgentStatus) via TeamCity UI. +- **OWN_ADDRESS** - (optional, linux only) IP address build agent binds to, autodetected +- **OWN_PORT** - (optional, linux only) Port build agent binds to, 9090 by default + +### Windows Containers Limitations + +The details on the known problems in Windows containers are available in the [TeamCity documentation](https://www.jetbrains.com/help/teamcity/known-issues.html#KnownIssues-WindowsDockerContainers). + +## Customization + +You can customize the image via the usual Docker procedure: + +1. Run the image +``` +docker run -it -e SERVER_URL="" \ + -v :/data/teamcity_agent/conf \ + --name="my-customized-agent" \ + jetbrains/teamcity-minimal-agent \ +``` +2. Enter the container +``` +docker exec -it my-customized-agent bash +``` + +3. Change whatever you need +4. Exit and [create a new image](https://docs.docker.com/engine/reference/commandline/commit/) from the container +``` +docker commit my-customized-agent +``` + +## License + +The image is available under the [TeamCity license](https://www.jetbrains.com/teamcity/buy/license.html). +TeamCity is free for perpetual use with the limitation of 100 build configurations (jobs) and 3 agents. [Licensing details](https://www.jetbrains.com/help/teamcity/licensing-policy.html). + +## Feedback + +Report issues of suggestions to the official TeamCity [issue tracker](https://youtrack.jetbrains.com/issues/TW). + +## Other TeamCity Images +* [TeamCity Server](https://hub.docker.com/r/jetbrains/teamcity-server/) +* [Build Agent](https://hub.docker.com/r/jetbrains/teamcity-agent/) diff --git a/linux/ecosystem/gitlab/runner/node21/Dockerfile b/linux/ecosystem/gitlab/runner/node21/Dockerfile index 1ca88e05d..bb03417fd 100644 --- a/linux/ecosystem/gitlab/runner/node21/Dockerfile +++ b/linux/ecosystem/gitlab/runner/node21/Dockerfile @@ -1,23 +1,33 @@ FROM epicmorg/gitlab-runner:latest LABEL maintainer="EpicMorg DevTeam, developer@epicm.org" + ARG DEBIAN_FRONTEND=noninteractive +ARG K_NODE_MAJOR_VERSION=21 +ARG K_NODE_VERSION=${K_NODE_MAJOR_VERSION}.7.3 +ARG K_NODE_URL=https://nodejs.org/dist/v${K_NODE_VERSION}/node-v${K_NODE_VERSION}-linux-x64.tar.gz +ARG K_NODE_HEADERS_URL=https://nodejs.org/dist/v${K_NODE_VERSION}/node-v${K_NODE_VERSION}-headers.tar.gz + ################################################################## # Node.js 21.x ################################################################## -RUN groupadd node && \ - useradd --gid node --shell /bin/bash --create-home node +RUN groupadd -g 1337 node && \ + useradd -u 1337 --gid node --shell /bin/bash --create-home node -RUN curl -sL https://deb.nodesource.com/setup_21.x | bash - && \ - curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | sudo apt-key add - && \ - echo "deb https://nightly.yarnpkg.com/debian/ nightly main" > /etc/apt/sources.list.d/yarn.list && \ - apt-get update && \ - apt-get install -y nodejs yarn && \ - npm install -g pnpm +RUN curl --user-agent "Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Firefox/81.0" --location ${K_NODE_URL}?$(date +%s) \ + --header 'Cache-Control: no-cache, no-store' \ + --header 'Pragma: no-cache' | tar xzv --strip-components=1 --directory /usr/local/ && \ + rm -rfv /usr/local/CHANGELOG.md /usr/local/LICENSE /usr/local/README.md -# curl -L https://www.npmjs.com/install.sh | sh -# npm install -g npm +RUN curl --user-agent "Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Firefox/81.0" --location ${K_NODE_HEADERS_URL}?$(date +%s) \ + --header 'Cache-Control: no-cache, no-store' \ + --header 'Pragma: no-cache' | tar xzv --strip-components=1 --directory /usr/local/ +RUN npm install -g pnpm yarn + +################################################################## +# Version after install +################################################################## RUN echo "=============================================" && \ echo node $(node --version) && \ echo npm $(npm --version) && \ @@ -26,11 +36,11 @@ RUN echo "=============================================" && \ echo "=============================================" ################################################################## -# cleaninig up +# cleanup ################################################################## -RUN apt clean -y && \ - apt-get clean all && \ - apt autoclean -y && \ - rm -rfv /var/lib/apt/lists/* && \ - rm -rfv /var/cache/apt/archives/*.deb && \ - rm -rfv /tmp/* +RUN apt-get purge policykit-1 -y && \ +apt-get clean -y && \ +apt-get autoclean -y && \ +rm -rfv /var/lib/apt/lists/* && \ +rm -rfv /var/cache/apt/archives/*.deb && \ +rm -rfv /tmp/* diff --git a/linux/ecosystem/gitlab/runner/node21/README.md b/linux/ecosystem/gitlab/runner/node21/README.md index e69de29bb..b53fe01e8 100644 --- a/linux/ecosystem/gitlab/runner/node21/README.md +++ b/linux/ecosystem/gitlab/runner/node21/README.md @@ -0,0 +1,93 @@ +## TeamCity Minimal Build Agent + +[](https://confluence.jetbrains.com/display/ALL/JetBrains+on+GitHub) + +This is an official [JetBrains TeamCity](https://www.jetbrains.com/teamcity/) minimal build agent image. + + More details about tags and components are [here](https://github.com/JetBrains/teamcity-docker-images/blob/master/generated/teamcity-minimal-agent.md). + +The [TeamCity build agent](https://www.jetbrains.com/help/teamcity/build-agent.html) connects to the TeamCity server and spawns the actual build processes. +You can use the ```jetbrains/teamcity-server``` image to run a TeamCity server. + +This minimal image adds just a TeamCity agent without any tools like VCS clients, etc. It is suitable for simple builds and can serve as a base for your custom images. For Java or .NET development we recommend using the default build agent image [jetbrains/teamcity-agent](https://hub.docker.com/r/jetbrains/teamcity-agent/). + +## How to Use This Image + +Pull the TeamCity minimal image from the Docker Hub Repository: + +``` +jetbrains/teamcity-minimal-agent +``` +  +and use the following command to start a container with TeamCity agent running inside +a Linux container: + +``` +docker run -it -e SERVER_URL="" \ + -v :/data/teamcity_agent/conf \ + jetbrains/teamcity-minimal-agent +``` +  +or a Windows container: +``` +docker run -it -e SERVER_URL="" + -v :C:/BuildAgent/conf + jetbrains/teamcity-minimal-agent +``` +where `` is the full URL for TeamCity server, accessible by the agent. Note that `localhost` will not generally not work as it will refer to the `localhost` inside the container. +`` is the host machine directory to serve as the TeamCity agent config directory. We recommend providing this binding in order to persist the agent configuration, e.g. authorization on the server. Note that you should map a different folder for every new agent you create. + +Since version 2020.1, TeamCity agent Docker images __run under a non-root user__. Refer to our [upgrade notes](https://www.jetbrains.com/help/teamcity/upgrade-notes.html#UpgradeNotes-AgentDockerimagesrunundernon-rootuser) for information on possible affected use cases. + +When you run the agent for the first time, you should authorize it via the TeamCity server UI: go to the **Unauthorized Agents** page in your browser. See [more details](https://www.jetbrains.com/help/teamcity/build-agent.html). + +All information about agent authorization is stored in agent's configuration folder. If you stop the container with the agent and then start a new one with the same config folder, the agent's name and authorization state will be preserved. + +TeamCity agent does not need manual upgrade: it will upgrade itself automatically on connecting to an upgraded server. + +### Agent Image Environment Variables + +- **SERVER_URL** - URL of the TeamCity server agent will connect to +- **AGENT_NAME** - (optional) Name of the agent in TeamCity UI, autogenerated if omitted +- **AGENT_TOKEN** - (optional) Agent authorization token, if unset, the agent should be [authorized](https://www.jetbrains.com/help/teamcity/build-agent.html#BuildAgent-BuildAgentStatus) via TeamCity UI. +- **OWN_ADDRESS** - (optional, linux only) IP address build agent binds to, autodetected +- **OWN_PORT** - (optional, linux only) Port build agent binds to, 9090 by default + +### Windows Containers Limitations + +The details on the known problems in Windows containers are available in the [TeamCity documentation](https://www.jetbrains.com/help/teamcity/known-issues.html#KnownIssues-WindowsDockerContainers). + +## Customization + +You can customize the image via the usual Docker procedure: + +1. Run the image +``` +docker run -it -e SERVER_URL="" \ + -v :/data/teamcity_agent/conf \ + --name="my-customized-agent" \ + jetbrains/teamcity-minimal-agent \ +``` +2. Enter the container +``` +docker exec -it my-customized-agent bash +``` + +3. Change whatever you need +4. Exit and [create a new image](https://docs.docker.com/engine/reference/commandline/commit/) from the container +``` +docker commit my-customized-agent +``` + +## License + +The image is available under the [TeamCity license](https://www.jetbrains.com/teamcity/buy/license.html). +TeamCity is free for perpetual use with the limitation of 100 build configurations (jobs) and 3 agents. [Licensing details](https://www.jetbrains.com/help/teamcity/licensing-policy.html). + +## Feedback + +Report issues of suggestions to the official TeamCity [issue tracker](https://youtrack.jetbrains.com/issues/TW). + +## Other TeamCity Images +* [TeamCity Server](https://hub.docker.com/r/jetbrains/teamcity-server/) +* [Build Agent](https://hub.docker.com/r/jetbrains/teamcity-agent/) diff --git a/linux/ecosystem/gitlab/runner/node22/Dockerfile b/linux/ecosystem/gitlab/runner/node22/Dockerfile new file mode 100644 index 000000000..b762a2db6 --- /dev/null +++ b/linux/ecosystem/gitlab/runner/node22/Dockerfile @@ -0,0 +1,46 @@ +FROM epicmorg/gitlab-runner:latest +LABEL maintainer="EpicMorg DevTeam, developer@epicm.org" + +ARG DEBIAN_FRONTEND=noninteractive + +ARG K_NODE_MAJOR_VERSION=22 +ARG K_NODE_VERSION=${K_NODE_MAJOR_VERSION}.3.0 +ARG K_NODE_URL=https://nodejs.org/dist/v${K_NODE_VERSION}/node-v${K_NODE_VERSION}-linux-x64.tar.gz +ARG K_NODE_HEADERS_URL=https://nodejs.org/dist/v${K_NODE_VERSION}/node-v${K_NODE_VERSION}-headers.tar.gz + +################################################################## +# Node.js 22.x +################################################################## +RUN groupadd -g 1337 node && \ + useradd -u 1337 --gid node --shell /bin/bash --create-home node + +RUN curl --user-agent "Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Firefox/81.0" --location ${K_NODE_URL}?$(date +%s) \ + --header 'Cache-Control: no-cache, no-store' \ + --header 'Pragma: no-cache' | tar xzv --strip-components=1 --directory /usr/local/ && \ + rm -rfv /usr/local/CHANGELOG.md /usr/local/LICENSE /usr/local/README.md + +RUN curl --user-agent "Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Firefox/81.0" --location ${K_NODE_HEADERS_URL}?$(date +%s) \ + --header 'Cache-Control: no-cache, no-store' \ + --header 'Pragma: no-cache' | tar xzv --strip-components=1 --directory /usr/local/ + +RUN npm install -g pnpm yarn + +################################################################## +# Version after install +################################################################## +RUN echo "=============================================" && \ + echo node $(node --version) && \ + echo npm $(npm --version) && \ + echo yarn $(yarn --version) && \ + echo pnpm $(pnpm --version) && \ + echo "=============================================" + +################################################################## +# cleanup +################################################################## +RUN apt-get purge policykit-1 -y && \ +apt-get clean -y && \ +apt-get autoclean -y && \ +rm -rfv /var/lib/apt/lists/* && \ +rm -rfv /var/cache/apt/archives/*.deb && \ +rm -rfv /tmp/* diff --git a/linux/ecosystem/nodejs/outdated/node16/Makefile b/linux/ecosystem/gitlab/runner/node22/Makefile similarity index 100% rename from linux/ecosystem/nodejs/outdated/node16/Makefile rename to linux/ecosystem/gitlab/runner/node22/Makefile diff --git a/linux/ecosystem/nodejs/outdated/node13/README.md b/linux/ecosystem/gitlab/runner/node22/README.md similarity index 100% rename from linux/ecosystem/nodejs/outdated/node13/README.md rename to linux/ecosystem/gitlab/runner/node22/README.md diff --git a/linux/ecosystem/gitlab/runner/node22/docker-compose.yml b/linux/ecosystem/gitlab/runner/node22/docker-compose.yml new file mode 100644 index 000000000..1c699b4ad --- /dev/null +++ b/linux/ecosystem/gitlab/runner/node22/docker-compose.yml @@ -0,0 +1,6 @@ +version: '3' +services: + app: + image: "epicmorg/gitlab-runner:node22" + build: + context: . diff --git a/linux/ecosystem/gitlab/runner/node4/Dockerfile b/linux/ecosystem/gitlab/runner/node4/Dockerfile new file mode 100644 index 000000000..e68895077 --- /dev/null +++ b/linux/ecosystem/gitlab/runner/node4/Dockerfile @@ -0,0 +1,47 @@ +FROM epicmorg/gitlab-runner:latest +LABEL maintainer="EpicMorg DevTeam, developer@epicm.org" + +ARG DEBIAN_FRONTEND=noninteractive + +ARG K_NODE_MAJOR_VERSION=4 +ARG K_NODE_VERSION=${K_NODE_MAJOR_VERSION}.9.1 +ARG K_NODE_URL=https://nodejs.org/dist/v${K_NODE_VERSION}/node-v${K_NODE_VERSION}-linux-x64.tar.gz +ARG K_NODE_HEADERS_URL=https://nodejs.org/dist/v${K_NODE_VERSION}/node-v${K_NODE_VERSION}-headers.tar.gz + +################################################################## +# Node.js 4.x +################################################################## +RUN groupadd -g 1337 node && \ + useradd -u 1337 --gid node --shell /bin/bash --create-home node + +RUN curl --user-agent "Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Firefox/81.0" --location ${K_NODE_URL}?$(date +%s) \ + --header 'Cache-Control: no-cache, no-store' \ + --header 'Pragma: no-cache' | tar xzv --strip-components=1 --directory /usr/local/ && \ + rm -rfv /usr/local/CHANGELOG.md /usr/local/LICENSE /usr/local/README.md + +RUN curl --user-agent "Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Firefox/81.0" --location ${K_NODE_HEADERS_URL}?$(date +%s) \ + --header 'Cache-Control: no-cache, no-store' \ + --header 'Pragma: no-cache' | tar xzv --strip-components=1 --directory /usr/local/ + +#RUN npm install -g pnpm yarn +RUN npm install -g pnpm@2 + +################################################################## +# Version after install +################################################################## +RUN echo "=============================================" && \ + echo node $(node --version) && \ + echo npm $(npm --version) && \ +# echo yarn $(yarn --version) && \ + echo pnpm $(pnpm --version) && \ + echo "=============================================" + +################################################################## +# cleanup +################################################################## +RUN apt-get purge policykit-1 -y && \ +apt-get clean -y && \ +apt-get autoclean -y && \ +rm -rfv /var/lib/apt/lists/* && \ +rm -rfv /var/cache/apt/archives/*.deb && \ +rm -rfv /tmp/* diff --git a/linux/ecosystem/nodejs/outdated/node17/Makefile b/linux/ecosystem/gitlab/runner/node4/Makefile similarity index 100% rename from linux/ecosystem/nodejs/outdated/node17/Makefile rename to linux/ecosystem/gitlab/runner/node4/Makefile diff --git a/linux/ecosystem/nodejs/outdated/node14/README.md b/linux/ecosystem/gitlab/runner/node4/README.md similarity index 100% rename from linux/ecosystem/nodejs/outdated/node14/README.md rename to linux/ecosystem/gitlab/runner/node4/README.md diff --git a/linux/ecosystem/gitlab/runner/node4/docker-compose.yml b/linux/ecosystem/gitlab/runner/node4/docker-compose.yml new file mode 100644 index 000000000..2b6e6012c --- /dev/null +++ b/linux/ecosystem/gitlab/runner/node4/docker-compose.yml @@ -0,0 +1,6 @@ +version: '3' +services: + app: + image: "epicmorg/gitlab-runner:node4" + build: + context: . diff --git a/linux/ecosystem/gitlab/runner/node5/Dockerfile b/linux/ecosystem/gitlab/runner/node5/Dockerfile new file mode 100644 index 000000000..e5c67b379 --- /dev/null +++ b/linux/ecosystem/gitlab/runner/node5/Dockerfile @@ -0,0 +1,47 @@ +FROM epicmorg/gitlab-runner:latest +LABEL maintainer="EpicMorg DevTeam, developer@epicm.org" + +ARG DEBIAN_FRONTEND=noninteractive + +ARG K_NODE_MAJOR_VERSION=5 +ARG K_NODE_VERSION=${K_NODE_MAJOR_VERSION}.9.1 +ARG K_NODE_URL=https://nodejs.org/dist/v${K_NODE_VERSION}/node-v${K_NODE_VERSION}-linux-x64.tar.gz +ARG K_NODE_HEADERS_URL=https://nodejs.org/dist/v${K_NODE_VERSION}/node-v${K_NODE_VERSION}-headers.tar.gz + +################################################################## +# Node.js 5.x +################################################################## +RUN groupadd -g 1337 node && \ + useradd -u 1337 --gid node --shell /bin/bash --create-home node + +RUN curl --user-agent "Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Firefox/81.0" --location ${K_NODE_URL}?$(date +%s) \ + --header 'Cache-Control: no-cache, no-store' \ + --header 'Pragma: no-cache' | tar xzv --strip-components=1 --directory /usr/local/ && \ + rm -rfv /usr/local/CHANGELOG.md /usr/local/LICENSE /usr/local/README.md + +RUN curl --user-agent "Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Firefox/81.0" --location ${K_NODE_HEADERS_URL}?$(date +%s) \ + --header 'Cache-Control: no-cache, no-store' \ + --header 'Pragma: no-cache' | tar xzv --strip-components=1 --directory /usr/local/ + +#RUN npm install -g pnpm yarn +RUN npm install -g pnpm@2 + +################################################################## +# Version after install +################################################################## +RUN echo "=============================================" && \ + echo node $(node --version) && \ + echo npm $(npm --version) && \ +# echo yarn $(yarn --version) && \ + echo pnpm $(pnpm --version) && \ + echo "=============================================" + +################################################################## +# cleanup +################################################################## +RUN apt-get purge policykit-1 -y && \ +apt-get clean -y && \ +apt-get autoclean -y && \ +rm -rfv /var/lib/apt/lists/* && \ +rm -rfv /var/cache/apt/archives/*.deb && \ +rm -rfv /tmp/* diff --git a/linux/ecosystem/nodejs/outdated/node18/Makefile b/linux/ecosystem/gitlab/runner/node5/Makefile similarity index 100% rename from linux/ecosystem/nodejs/outdated/node18/Makefile rename to linux/ecosystem/gitlab/runner/node5/Makefile diff --git a/linux/ecosystem/nodejs/outdated/node15/README.md b/linux/ecosystem/gitlab/runner/node5/README.md similarity index 100% rename from linux/ecosystem/nodejs/outdated/node15/README.md rename to linux/ecosystem/gitlab/runner/node5/README.md diff --git a/linux/ecosystem/gitlab/runner/node5/docker-compose.yml b/linux/ecosystem/gitlab/runner/node5/docker-compose.yml new file mode 100644 index 000000000..546a06f95 --- /dev/null +++ b/linux/ecosystem/gitlab/runner/node5/docker-compose.yml @@ -0,0 +1,6 @@ +version: '3' +services: + app: + image: "epicmorg/gitlab-runner:node5" + build: + context: . diff --git a/linux/ecosystem/gitlab/runner/node6/Dockerfile b/linux/ecosystem/gitlab/runner/node6/Dockerfile new file mode 100644 index 000000000..0fa646137 --- /dev/null +++ b/linux/ecosystem/gitlab/runner/node6/Dockerfile @@ -0,0 +1,47 @@ +FROM epicmorg/gitlab-runner:latest +LABEL maintainer="EpicMorg DevTeam, developer@epicm.org" + +ARG DEBIAN_FRONTEND=noninteractive + +ARG K_NODE_MAJOR_VERSION=6 +ARG K_NODE_VERSION=${K_NODE_MAJOR_VERSION}.17.1 +ARG K_NODE_URL=https://nodejs.org/dist/v${K_NODE_VERSION}/node-v${K_NODE_VERSION}-linux-x64.tar.gz +ARG K_NODE_HEADERS_URL=https://nodejs.org/dist/v${K_NODE_VERSION}/node-v${K_NODE_VERSION}-headers.tar.gz + +################################################################## +# Node.js 6.x +################################################################## +RUN groupadd -g 1337 node && \ + useradd -u 1337 --gid node --shell /bin/bash --create-home node + +RUN curl --user-agent "Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Firefox/81.0" --location ${K_NODE_URL}?$(date +%s) \ + --header 'Cache-Control: no-cache, no-store' \ + --header 'Pragma: no-cache' | tar xzv --strip-components=1 --directory /usr/local/ && \ + rm -rfv /usr/local/CHANGELOG.md /usr/local/LICENSE /usr/local/README.md + +RUN curl --user-agent "Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Firefox/81.0" --location ${K_NODE_HEADERS_URL}?$(date +%s) \ + --header 'Cache-Control: no-cache, no-store' \ + --header 'Pragma: no-cache' | tar xzv --strip-components=1 --directory /usr/local/ + +#RUN npm install -g pnpm yarn +RUN npm install -g pnpm@2 + +################################################################## +# Version after install +################################################################## +RUN echo "=============================================" && \ + echo node $(node --version) && \ + echo npm $(npm --version) && \ +# echo yarn $(yarn --version) && \ + echo pnpm $(pnpm --version) && \ + echo "=============================================" + +################################################################## +# cleanup +################################################################## +RUN apt-get purge policykit-1 -y && \ +apt-get clean -y && \ +apt-get autoclean -y && \ +rm -rfv /var/lib/apt/lists/* && \ +rm -rfv /var/cache/apt/archives/*.deb && \ +rm -rfv /tmp/* diff --git a/linux/ecosystem/nodejs/outdated/node19/Makefile b/linux/ecosystem/gitlab/runner/node6/Makefile similarity index 100% rename from linux/ecosystem/nodejs/outdated/node19/Makefile rename to linux/ecosystem/gitlab/runner/node6/Makefile diff --git a/linux/ecosystem/nodejs/outdated/node16/README.md b/linux/ecosystem/gitlab/runner/node6/README.md similarity index 100% rename from linux/ecosystem/nodejs/outdated/node16/README.md rename to linux/ecosystem/gitlab/runner/node6/README.md diff --git a/linux/ecosystem/gitlab/runner/node6/docker-compose.yml b/linux/ecosystem/gitlab/runner/node6/docker-compose.yml new file mode 100644 index 000000000..938c12300 --- /dev/null +++ b/linux/ecosystem/gitlab/runner/node6/docker-compose.yml @@ -0,0 +1,6 @@ +version: '3' +services: + app: + image: "epicmorg/gitlab-runner:node6" + build: + context: . diff --git a/linux/ecosystem/gitlab/runner/node7/Dockerfile b/linux/ecosystem/gitlab/runner/node7/Dockerfile new file mode 100644 index 000000000..11b6e5563 --- /dev/null +++ b/linux/ecosystem/gitlab/runner/node7/Dockerfile @@ -0,0 +1,46 @@ +FROM epicmorg/gitlab-runner:latest +LABEL maintainer="EpicMorg DevTeam, developer@epicm.org" + +ARG DEBIAN_FRONTEND=noninteractive + +ARG K_NODE_MAJOR_VERSION=7 +ARG K_NODE_VERSION=${K_NODE_MAJOR_VERSION}.10.1 +ARG K_NODE_URL=https://nodejs.org/dist/v${K_NODE_VERSION}/node-v${K_NODE_VERSION}-linux-x64.tar.gz +ARG K_NODE_HEADERS_URL=https://nodejs.org/dist/v${K_NODE_VERSION}/node-v${K_NODE_VERSION}-headers.tar.gz + +################################################################## +# Node.js 7.x +################################################################## +RUN groupadd -g 1337 node && \ + useradd -u 1337 --gid node --shell /bin/bash --create-home node + +RUN curl --user-agent "Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Firefox/81.0" --location ${K_NODE_URL}?$(date +%s) \ + --header 'Cache-Control: no-cache, no-store' \ + --header 'Pragma: no-cache' | tar xzv --strip-components=1 --directory /usr/local/ && \ + rm -rfv /usr/local/CHANGELOG.md /usr/local/LICENSE /usr/local/README.md + +RUN curl --user-agent "Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Firefox/81.0" --location ${K_NODE_HEADERS_URL}?$(date +%s) \ + --header 'Cache-Control: no-cache, no-store' \ + --header 'Pragma: no-cache' | tar xzv --strip-components=1 --directory /usr/local/ + +RUN npm install -g pnpm@3 yarn + +################################################################## +# Version after install +################################################################## +RUN echo "=============================================" && \ + echo node $(node --version) && \ + echo npm $(npm --version) && \ + echo yarn $(yarn --version) && \ + echo pnpm $(pnpm --version) && \ + echo "=============================================" + +################################################################## +# cleanup +################################################################## +RUN apt-get purge policykit-1 -y && \ +apt-get clean -y && \ +apt-get autoclean -y && \ +rm -rfv /var/lib/apt/lists/* && \ +rm -rfv /var/cache/apt/archives/*.deb && \ +rm -rfv /tmp/* diff --git a/linux/ecosystem/nodejs/outdated/node4/Makefile b/linux/ecosystem/gitlab/runner/node7/Makefile similarity index 100% rename from linux/ecosystem/nodejs/outdated/node4/Makefile rename to linux/ecosystem/gitlab/runner/node7/Makefile diff --git a/linux/ecosystem/nodejs/outdated/node17/README.md b/linux/ecosystem/gitlab/runner/node7/README.md similarity index 100% rename from linux/ecosystem/nodejs/outdated/node17/README.md rename to linux/ecosystem/gitlab/runner/node7/README.md diff --git a/linux/ecosystem/gitlab/runner/node7/docker-compose.yml b/linux/ecosystem/gitlab/runner/node7/docker-compose.yml new file mode 100644 index 000000000..7f23c36b0 --- /dev/null +++ b/linux/ecosystem/gitlab/runner/node7/docker-compose.yml @@ -0,0 +1,6 @@ +version: '3' +services: + app: + image: "epicmorg/gitlab-runner:node7" + build: + context: . diff --git a/linux/ecosystem/gitlab/runner/node8/Dockerfile b/linux/ecosystem/gitlab/runner/node8/Dockerfile new file mode 100644 index 000000000..b94de3ab9 --- /dev/null +++ b/linux/ecosystem/gitlab/runner/node8/Dockerfile @@ -0,0 +1,46 @@ +FROM epicmorg/gitlab-runner:latest +LABEL maintainer="EpicMorg DevTeam, developer@epicm.org" + +ARG DEBIAN_FRONTEND=noninteractive + +ARG K_NODE_MAJOR_VERSION=8 +ARG K_NODE_VERSION=${K_NODE_MAJOR_VERSION}.17.0 +ARG K_NODE_URL=https://nodejs.org/dist/v${K_NODE_VERSION}/node-v${K_NODE_VERSION}-linux-x64.tar.gz +ARG K_NODE_HEADERS_URL=https://nodejs.org/dist/v${K_NODE_VERSION}/node-v${K_NODE_VERSION}-headers.tar.gz + +################################################################## +# Node.js 8.x +################################################################## +RUN groupadd -g 1337 node && \ + useradd -u 1337 --gid node --shell /bin/bash --create-home node + +RUN curl --user-agent "Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Firefox/81.0" --location ${K_NODE_URL}?$(date +%s) \ + --header 'Cache-Control: no-cache, no-store' \ + --header 'Pragma: no-cache' | tar xzv --strip-components=1 --directory /usr/local/ && \ + rm -rfv /usr/local/CHANGELOG.md /usr/local/LICENSE /usr/local/README.md + +RUN curl --user-agent "Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Firefox/81.0" --location ${K_NODE_HEADERS_URL}?$(date +%s) \ + --header 'Cache-Control: no-cache, no-store' \ + --header 'Pragma: no-cache' | tar xzv --strip-components=1 --directory /usr/local/ + +RUN npm install -g pnpm@3 yarn + +################################################################## +# Version after install +################################################################## +RUN echo "=============================================" && \ + echo node $(node --version) && \ + echo npm $(npm --version) && \ + echo yarn $(yarn --version) && \ + echo pnpm $(pnpm --version) && \ + echo "=============================================" + +################################################################## +# cleanup +################################################################## +RUN apt-get purge policykit-1 -y && \ +apt-get clean -y && \ +apt-get autoclean -y && \ +rm -rfv /var/lib/apt/lists/* && \ +rm -rfv /var/cache/apt/archives/*.deb && \ +rm -rfv /tmp/* diff --git a/linux/ecosystem/nodejs/outdated/node6/Makefile b/linux/ecosystem/gitlab/runner/node8/Makefile similarity index 100% rename from linux/ecosystem/nodejs/outdated/node6/Makefile rename to linux/ecosystem/gitlab/runner/node8/Makefile diff --git a/linux/ecosystem/nodejs/outdated/node18/README.md b/linux/ecosystem/gitlab/runner/node8/README.md similarity index 100% rename from linux/ecosystem/nodejs/outdated/node18/README.md rename to linux/ecosystem/gitlab/runner/node8/README.md diff --git a/linux/ecosystem/gitlab/runner/node8/docker-compose.yml b/linux/ecosystem/gitlab/runner/node8/docker-compose.yml new file mode 100644 index 000000000..7cc7dac35 --- /dev/null +++ b/linux/ecosystem/gitlab/runner/node8/docker-compose.yml @@ -0,0 +1,6 @@ +version: '3' +services: + app: + image: "epicmorg/gitlab-runner:node8" + build: + context: . diff --git a/linux/ecosystem/gitlab/runner/node9/Dockerfile b/linux/ecosystem/gitlab/runner/node9/Dockerfile new file mode 100644 index 000000000..a2dfcf643 --- /dev/null +++ b/linux/ecosystem/gitlab/runner/node9/Dockerfile @@ -0,0 +1,46 @@ +FROM epicmorg/gitlab-runner:latest +LABEL maintainer="EpicMorg DevTeam, developer@epicm.org" + +ARG DEBIAN_FRONTEND=noninteractive + +ARG K_NODE_MAJOR_VERSION=9 +ARG K_NODE_VERSION=${K_NODE_MAJOR_VERSION}.11.2 +ARG K_NODE_URL=https://nodejs.org/dist/v${K_NODE_VERSION}/node-v${K_NODE_VERSION}-linux-x64.tar.gz +ARG K_NODE_HEADERS_URL=https://nodejs.org/dist/v${K_NODE_VERSION}/node-v${K_NODE_VERSION}-headers.tar.gz + +################################################################## +# Node.js 9.x +################################################################## +RUN groupadd -g 1337 node && \ + useradd -u 1337 --gid node --shell /bin/bash --create-home node + +RUN curl --user-agent "Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Firefox/81.0" --location ${K_NODE_URL}?$(date +%s) \ + --header 'Cache-Control: no-cache, no-store' \ + --header 'Pragma: no-cache' | tar xzv --strip-components=1 --directory /usr/local/ && \ + rm -rfv /usr/local/CHANGELOG.md /usr/local/LICENSE /usr/local/README.md + +RUN curl --user-agent "Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Firefox/81.0" --location ${K_NODE_HEADERS_URL}?$(date +%s) \ + --header 'Cache-Control: no-cache, no-store' \ + --header 'Pragma: no-cache' | tar xzv --strip-components=1 --directory /usr/local/ + +RUN npm install -g pnpm@3 yarn + +################################################################## +# Version after install +################################################################## +RUN echo "=============================================" && \ + echo node $(node --version) && \ + echo npm $(npm --version) && \ + echo yarn $(yarn --version) && \ + echo pnpm $(pnpm --version) && \ + echo "=============================================" + +################################################################## +# cleanup +################################################################## +RUN apt-get purge policykit-1 -y && \ +apt-get clean -y && \ +apt-get autoclean -y && \ +rm -rfv /var/lib/apt/lists/* && \ +rm -rfv /var/cache/apt/archives/*.deb && \ +rm -rfv /tmp/* diff --git a/linux/ecosystem/nodejs/outdated/node8/Makefile b/linux/ecosystem/gitlab/runner/node9/Makefile similarity index 100% rename from linux/ecosystem/nodejs/outdated/node8/Makefile rename to linux/ecosystem/gitlab/runner/node9/Makefile diff --git a/linux/ecosystem/nodejs/outdated/node19/README.md b/linux/ecosystem/gitlab/runner/node9/README.md similarity index 100% rename from linux/ecosystem/nodejs/outdated/node19/README.md rename to linux/ecosystem/gitlab/runner/node9/README.md diff --git a/linux/ecosystem/gitlab/runner/node9/docker-compose.yml b/linux/ecosystem/gitlab/runner/node9/docker-compose.yml new file mode 100644 index 000000000..9a21d102f --- /dev/null +++ b/linux/ecosystem/gitlab/runner/node9/docker-compose.yml @@ -0,0 +1,6 @@ +version: '3' +services: + app: + image: "epicmorg/gitlab-runner:node9" + build: + context: . diff --git a/linux/ecosystem/gitlab/runner/php7.2/Dockerfile b/linux/ecosystem/gitlab/runner/php7.2/Dockerfile index 4883f8fd0..dff3a0cf2 100644 --- a/linux/ecosystem/gitlab/runner/php7.2/Dockerfile +++ b/linux/ecosystem/gitlab/runner/php7.2/Dockerfile @@ -8,7 +8,7 @@ ARG DEBIAN_FRONTEND=noninteractive RUN php -m && \ php -v -ENV GITLAB_RUNNER_HOME=/opt/gitlab-runner +ENV GITLAB_RUNNER_HOME=/home/gitlab-runner ENV GITLAB_RUNNER_CONF=/etc/gitlab-runner ENV GIT_SSH_VARIANT=ssh RUN mkdir -p ${GITLAB_RUNNER_HOME} ${GITLAB_RUNNER_CONF} ${GITLAB_RUNNER_CONF}/certs && \ @@ -20,8 +20,8 @@ RUN mkdir -p ${GITLAB_RUNNER_HOME} ${GITLAB_RUNNER_CONF} ${GITLAB_RUNNER_CONF}/c #Install packages RUN curl -fsSL https://download.docker.com/linux/debian/gpg | apt-key add - && \ - echo 'deb https://download.docker.com/linux/debian bullseye test' > /etc/apt/sources.list.d/docker.list && \ - echo 'deb https://download.docker.com/linux/debian bullseye nightly' >> /etc/apt/sources.list.d/docker.list && \ + echo 'deb https://download.docker.com/linux/debian bookworm test' > /etc/apt/sources.list.d/docker.list && \ + echo 'deb https://download.docker.com/linux/debian bookworm nightly' >> /etc/apt/sources.list.d/docker.list && \ apt-cache policy docker-ce && \ apt-get update && \ apt-get install -y --no-install-recommends --allow-unauthenticated \ @@ -70,13 +70,12 @@ RUN apt clean -y && \ #Final config STOPSIGNAL SIGQUIT -VOLUME ["${GITLAB_RUNNER_CONF}", "${GITLAB_RUNNER_HOME}", "/var/lib/docker"] -WORKDIR ${GITLAB_RUNNER_HOME} +VOLUME ["${GITLAB_RUNNER_CONF}", "/home/gitlab-runner", "/var/lib/docker"] +WORKDIR /home/gitlab-runner # Add image configuration and scripts COPY docker-entrypoint.sh /usr/bin/docker-entrypoint.sh RUN chmod 755 /usr/bin/docker-entrypoint.sh ENTRYPOINT ["/usr/bin/dumb-init", "docker-entrypoint.sh"] -CMD ["run", "--user=gitlab-runner", "--working-directory=${GITLAB_RUNNER_HOME}"] - +CMD ["run", "--user=gitlab-runner", "--working-directory=/home/gitlab-runner"] diff --git a/linux/ecosystem/gitlab/runner/php7.3/Dockerfile b/linux/ecosystem/gitlab/runner/php7.3/Dockerfile index 092aabda7..c200be2a7 100644 --- a/linux/ecosystem/gitlab/runner/php7.3/Dockerfile +++ b/linux/ecosystem/gitlab/runner/php7.3/Dockerfile @@ -8,12 +8,44 @@ ARG DEBIAN_FRONTEND=noninteractive RUN php -m && \ php -v -ENV GITLAB_RUNNER_HOME=/opt/gitlab-runner +ENV GITLAB_RUNNER_HOME=/home/gitlab-runner ENV GITLAB_RUNNER_CONF=/etc/gitlab-runner ENV GIT_SSH_VARIANT=ssh RUN mkdir -p ${GITLAB_RUNNER_HOME} ${GITLAB_RUNNER_CONF} ${GITLAB_RUNNER_CONF}/certs && \ chmod -R 700 /etc/gitlab-runner +################################################################## +# docker setup +################################################################## + +#Install packages +RUN curl -fsSL https://download.docker.com/linux/debian/gpg | apt-key add - && \ + echo 'deb https://download.docker.com/linux/debian bookworm test' > /etc/apt/sources.list.d/docker.list && \ + echo 'deb https://download.docker.com/linux/debian bookworm nightly' >> /etc/apt/sources.list.d/docker.list && \ + apt-cache policy docker-ce && \ + apt-get update && \ + apt-get install -y --no-install-recommends --allow-unauthenticated \ + docker-ce \ + docker-ce-cli \ + containerd.io systemd && \ + systemctl disable docker && \ + docker --version + +COPY run-docker.sh /services/run-docker.sh +RUN chmod +x /services/run-docker.sh && \ + sync + +################################################################## +# docker compose setup +################################################################## + +#Install packages +RUN export DOCKER_COMPOSE_VERSION=`curl --silent https://api.github.com/repos/docker/compose/releases/latest | jq .name -r` && \ + echo "Latest compose is: ${DOCKER_COMPOSE_VERSION}" && \ + curl -SL https://github.com/docker/compose/releases/download/${DOCKER_COMPOSE_VERSION}/docker-compose-Linux-x86_64 -o /usr/local/bin/docker-compose && \ + chmod +x /usr/local/bin/docker-compose && \ + docker-compose --version + ################################################################## # gitlab runner setup ################################################################## @@ -22,6 +54,7 @@ RUN cd /tmp && \ chmod +x /tmp/install-gitlab-runner.sh && \ bash /tmp/install-gitlab-runner.sh && \ # useradd --comment 'GitLab Runner' --create-home gitlab-runner --shell /bin/bash && \ + usermod -aG docker gitlab-runner && \ cat /etc/passwd && \ gitlab-runner --version @@ -37,13 +70,12 @@ RUN apt clean -y && \ #Final config STOPSIGNAL SIGQUIT -VOLUME ["${GITLAB_RUNNER_CONF}", "${GITLAB_RUNNER_HOME}", "/var/lib/docker"] -WORKDIR ${GITLAB_RUNNER_HOME} +VOLUME ["${GITLAB_RUNNER_CONF}", "/home/gitlab-runner", "/var/lib/docker"] +WORKDIR /home/gitlab-runner # Add image configuration and scripts COPY docker-entrypoint.sh /usr/bin/docker-entrypoint.sh RUN chmod 755 /usr/bin/docker-entrypoint.sh ENTRYPOINT ["/usr/bin/dumb-init", "docker-entrypoint.sh"] -CMD ["run", "--user=gitlab-runner", "--working-directory=${GITLAB_RUNNER_HOME}"] - +CMD ["run", "--user=gitlab-runner", "--working-directory=/home/gitlab-runner"] diff --git a/linux/ecosystem/gitlab/runner/php7.4/Dockerfile b/linux/ecosystem/gitlab/runner/php7.4/Dockerfile index ac1f7cc8a..7775db55e 100644 --- a/linux/ecosystem/gitlab/runner/php7.4/Dockerfile +++ b/linux/ecosystem/gitlab/runner/php7.4/Dockerfile @@ -8,7 +8,7 @@ ARG DEBIAN_FRONTEND=noninteractive RUN php -m && \ php -v -ENV GITLAB_RUNNER_HOME=/opt/gitlab-runner +ENV GITLAB_RUNNER_HOME=/home/gitlab-runner ENV GITLAB_RUNNER_CONF=/etc/gitlab-runner ENV GIT_SSH_VARIANT=ssh RUN mkdir -p ${GITLAB_RUNNER_HOME} ${GITLAB_RUNNER_CONF} ${GITLAB_RUNNER_CONF}/certs && \ @@ -20,8 +20,8 @@ RUN mkdir -p ${GITLAB_RUNNER_HOME} ${GITLAB_RUNNER_CONF} ${GITLAB_RUNNER_CONF}/c #Install packages RUN curl -fsSL https://download.docker.com/linux/debian/gpg | apt-key add - && \ - echo 'deb https://download.docker.com/linux/debian bullseye test' > /etc/apt/sources.list.d/docker.list && \ - echo 'deb https://download.docker.com/linux/debian bullseye nightly' >> /etc/apt/sources.list.d/docker.list && \ + echo 'deb https://download.docker.com/linux/debian bookworm test' > /etc/apt/sources.list.d/docker.list && \ + echo 'deb https://download.docker.com/linux/debian bookworm nightly' >> /etc/apt/sources.list.d/docker.list && \ apt-cache policy docker-ce && \ apt-get update && \ apt-get install -y --no-install-recommends --allow-unauthenticated \ @@ -70,13 +70,13 @@ RUN apt clean -y && \ #Final config STOPSIGNAL SIGQUIT -VOLUME ["${GITLAB_RUNNER_CONF}", "${GITLAB_RUNNER_HOME}", "/var/lib/docker"] -WORKDIR ${GITLAB_RUNNER_HOME} +VOLUME ["${GITLAB_RUNNER_CONF}", "/home/gitlab-runner", "/var/lib/docker"] +WORKDIR /home/gitlab-runner # Add image configuration and scripts COPY docker-entrypoint.sh /usr/bin/docker-entrypoint.sh RUN chmod 755 /usr/bin/docker-entrypoint.sh ENTRYPOINT ["/usr/bin/dumb-init", "docker-entrypoint.sh"] -CMD ["run", "--user=gitlab-runner", "--working-directory=${GITLAB_RUNNER_HOME}"] +CMD ["run", "--user=gitlab-runner", "--working-directory=/home/gitlab-runner"] diff --git a/linux/ecosystem/gitlab/runner/php8.0/Dockerfile b/linux/ecosystem/gitlab/runner/php8.0/Dockerfile index eab9db120..1971451b1 100644 --- a/linux/ecosystem/gitlab/runner/php8.0/Dockerfile +++ b/linux/ecosystem/gitlab/runner/php8.0/Dockerfile @@ -8,7 +8,7 @@ ARG DEBIAN_FRONTEND=noninteractive RUN php -m && \ php -v -ENV GITLAB_RUNNER_HOME=/opt/gitlab-runner +ENV GITLAB_RUNNER_HOME=/home/gitlab-runner ENV GITLAB_RUNNER_CONF=/etc/gitlab-runner ENV GIT_SSH_VARIANT=ssh RUN mkdir -p ${GITLAB_RUNNER_HOME} ${GITLAB_RUNNER_CONF} ${GITLAB_RUNNER_CONF}/certs && \ @@ -20,8 +20,8 @@ RUN mkdir -p ${GITLAB_RUNNER_HOME} ${GITLAB_RUNNER_CONF} ${GITLAB_RUNNER_CONF}/c #Install packages RUN curl -fsSL https://download.docker.com/linux/debian/gpg | apt-key add - && \ - echo 'deb https://download.docker.com/linux/debian bullseye test' > /etc/apt/sources.list.d/docker.list && \ - echo 'deb https://download.docker.com/linux/debian bullseye nightly' >> /etc/apt/sources.list.d/docker.list && \ + echo 'deb https://download.docker.com/linux/debian bookworm test' > /etc/apt/sources.list.d/docker.list && \ + echo 'deb https://download.docker.com/linux/debian bookworm nightly' >> /etc/apt/sources.list.d/docker.list && \ apt-cache policy docker-ce && \ apt-get update && \ apt-get install -y --no-install-recommends --allow-unauthenticated \ @@ -70,13 +70,13 @@ RUN apt clean -y && \ #Final config STOPSIGNAL SIGQUIT -VOLUME ["${GITLAB_RUNNER_CONF}", "${GITLAB_RUNNER_HOME}", "/var/lib/docker"] -WORKDIR ${GITLAB_RUNNER_HOME} +VOLUME ["${GITLAB_RUNNER_CONF}", "/home/gitlab-runner", "/var/lib/docker"] +WORKDIR /home/gitlab-runner # Add image configuration and scripts COPY docker-entrypoint.sh /usr/bin/docker-entrypoint.sh RUN chmod 755 /usr/bin/docker-entrypoint.sh ENTRYPOINT ["/usr/bin/dumb-init", "docker-entrypoint.sh"] -CMD ["run", "--user=gitlab-runner", "--working-directory=${GITLAB_RUNNER_HOME}"] +CMD ["run", "--user=gitlab-runner", "--working-directory=/home/gitlab-runner"] diff --git a/linux/ecosystem/gitlab/runner/php8.1/Dockerfile b/linux/ecosystem/gitlab/runner/php8.1/Dockerfile index b1c37c44a..6056dd9a0 100644 --- a/linux/ecosystem/gitlab/runner/php8.1/Dockerfile +++ b/linux/ecosystem/gitlab/runner/php8.1/Dockerfile @@ -8,7 +8,7 @@ ARG DEBIAN_FRONTEND=noninteractive RUN php -m && \ php -v -ENV GITLAB_RUNNER_HOME=/opt/gitlab-runner +ENV GITLAB_RUNNER_HOME=/home/gitlab-runner ENV GITLAB_RUNNER_CONF=/etc/gitlab-runner ENV GIT_SSH_VARIANT=ssh RUN mkdir -p ${GITLAB_RUNNER_HOME} ${GITLAB_RUNNER_CONF} ${GITLAB_RUNNER_CONF}/certs && \ @@ -20,8 +20,8 @@ RUN mkdir -p ${GITLAB_RUNNER_HOME} ${GITLAB_RUNNER_CONF} ${GITLAB_RUNNER_CONF}/c #Install packages RUN curl -fsSL https://download.docker.com/linux/debian/gpg | apt-key add - && \ - echo 'deb https://download.docker.com/linux/debian bullseye test' > /etc/apt/sources.list.d/docker.list && \ - echo 'deb https://download.docker.com/linux/debian bullseye nightly' >> /etc/apt/sources.list.d/docker.list && \ + echo 'deb https://download.docker.com/linux/debian bookworm test' > /etc/apt/sources.list.d/docker.list && \ + echo 'deb https://download.docker.com/linux/debian bookworm nightly' >> /etc/apt/sources.list.d/docker.list && \ apt-cache policy docker-ce && \ apt-get update && \ apt-get install -y --no-install-recommends --allow-unauthenticated \ @@ -70,13 +70,12 @@ RUN apt clean -y && \ #Final config STOPSIGNAL SIGQUIT -VOLUME ["${GITLAB_RUNNER_CONF}", "${GITLAB_RUNNER_HOME}", "/var/lib/docker"] -WORKDIR ${GITLAB_RUNNER_HOME} +VOLUME ["${GITLAB_RUNNER_CONF}", "/home/gitlab-runner", "/var/lib/docker"] +WORKDIR /home/gitlab-runner # Add image configuration and scripts COPY docker-entrypoint.sh /usr/bin/docker-entrypoint.sh RUN chmod 755 /usr/bin/docker-entrypoint.sh ENTRYPOINT ["/usr/bin/dumb-init", "docker-entrypoint.sh"] -CMD ["run", "--user=gitlab-runner", "--working-directory=${GITLAB_RUNNER_HOME}"] - +CMD ["run", "--user=gitlab-runner", "--working-directory=/home/gitlab-runner"] diff --git a/linux/ecosystem/gitlab/runner/php8.2/Dockerfile b/linux/ecosystem/gitlab/runner/php8.2/Dockerfile new file mode 100644 index 000000000..9b9ce40dd --- /dev/null +++ b/linux/ecosystem/gitlab/runner/php8.2/Dockerfile @@ -0,0 +1,83 @@ +FROM epicmorg/php:php8.2 +LABEL maintainer="EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# php +################################################################## +RUN php -m && \ + php -v + +ENV GITLAB_RUNNER_HOME=/home/gitlab-runner +ENV GITLAB_RUNNER_CONF=/etc/gitlab-runner +ENV GIT_SSH_VARIANT=ssh +RUN mkdir -p ${GITLAB_RUNNER_HOME} ${GITLAB_RUNNER_CONF} ${GITLAB_RUNNER_CONF}/certs && \ + chmod -R 700 /etc/gitlab-runner + +################################################################## +# docker setup +################################################################## + +#Install packages +RUN curl -fsSL https://download.docker.com/linux/debian/gpg | apt-key add - && \ + echo 'deb https://download.docker.com/linux/debian bookworm test' > /etc/apt/sources.list.d/docker.list && \ + echo 'deb https://download.docker.com/linux/debian bookworm nightly' >> /etc/apt/sources.list.d/docker.list && \ + apt-cache policy docker-ce && \ + apt-get update && \ + apt-get install -y --no-install-recommends --allow-unauthenticated \ + docker-ce \ + docker-ce-cli \ + containerd.io systemd && \ + systemctl disable docker && \ + docker --version + +COPY run-docker.sh /services/run-docker.sh +RUN chmod +x /services/run-docker.sh && \ + sync + +################################################################## +# docker compose setup +################################################################## + +#Install packages +RUN export DOCKER_COMPOSE_VERSION=`curl --silent https://api.github.com/repos/docker/compose/releases/latest | jq .name -r` && \ + echo "Latest compose is: ${DOCKER_COMPOSE_VERSION}" && \ + curl -SL https://github.com/docker/compose/releases/download/${DOCKER_COMPOSE_VERSION}/docker-compose-Linux-x86_64 -o /usr/local/bin/docker-compose && \ + chmod +x /usr/local/bin/docker-compose && \ + docker-compose --version + +################################################################## +# gitlab runner setup +################################################################## +COPY install-gitlab-runner.sh /tmp/install-gitlab-runner.sh +RUN cd /tmp && \ + chmod +x /tmp/install-gitlab-runner.sh && \ + bash /tmp/install-gitlab-runner.sh && \ +# useradd --comment 'GitLab Runner' --create-home gitlab-runner --shell /bin/bash && \ + usermod -aG docker gitlab-runner && \ + cat /etc/passwd && \ + gitlab-runner --version + +################################################################## +# cleaninig up +################################################################## +RUN apt clean -y && \ + apt-get clean all && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb && \ + rm -rfv /tmp/* + +#Final config +STOPSIGNAL SIGQUIT +VOLUME ["${GITLAB_RUNNER_CONF}", "/home/gitlab-runner", "/var/lib/docker"] +WORKDIR /home/gitlab-runner + +# Add image configuration and scripts +COPY docker-entrypoint.sh /usr/bin/docker-entrypoint.sh +RUN chmod 755 /usr/bin/docker-entrypoint.sh + +ENTRYPOINT ["/usr/bin/dumb-init", "docker-entrypoint.sh"] +CMD ["run", "--user=gitlab-runner", "--working-directory=/home/gitlab-runner"] + + diff --git a/linux/ecosystem/gitlab/runner/php8.2/Makefile b/linux/ecosystem/gitlab/runner/php8.2/Makefile new file mode 100644 index 000000000..9ef622aa9 --- /dev/null +++ b/linux/ecosystem/gitlab/runner/php8.2/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel --progress plain + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/gitlab/runner/php8.2/README.md b/linux/ecosystem/gitlab/runner/php8.2/README.md new file mode 100644 index 000000000..e69de29bb diff --git a/linux/ecosystem/gitlab/runner/php8.2/docker-compose.yml b/linux/ecosystem/gitlab/runner/php8.2/docker-compose.yml new file mode 100644 index 000000000..f3589315b --- /dev/null +++ b/linux/ecosystem/gitlab/runner/php8.2/docker-compose.yml @@ -0,0 +1,6 @@ +version: '3' +services: + app: + image: "epicmorg/gitlab-runner:php8.2" + build: + context: . diff --git a/linux/ecosystem/gitlab/runner/php8.2/docker-entrypoint.sh b/linux/ecosystem/gitlab/runner/php8.2/docker-entrypoint.sh new file mode 100755 index 000000000..53350fa8f --- /dev/null +++ b/linux/ecosystem/gitlab/runner/php8.2/docker-entrypoint.sh @@ -0,0 +1,22 @@ +#!/bin/bash + +# gitlab-runner data directory +DATA_DIR="/etc/gitlab-runner" +CONFIG_FILE=${CONFIG_FILE:-$DATA_DIR/config.toml} +# custom certificate authority path +CA_CERTIFICATES_PATH=${CA_CERTIFICATES_PATH:-$DATA_DIR/certs/ca.crt} +LOCAL_CA_PATH="/usr/local/share/ca-certificates/ca.crt" + +update_ca() { + echo "Updating CA certificates..." + cp "${CA_CERTIFICATES_PATH}" "${LOCAL_CA_PATH}" + update-ca-certificates --fresh >/dev/null +} + +if [ -f "${CA_CERTIFICATES_PATH}" ]; then + # update the ca if the custom ca is different than the current + cmp --silent "${CA_CERTIFICATES_PATH}" "${LOCAL_CA_PATH}" || update_ca +fi + +# launch gitlab-runner passing all arguments +exec gitlab-runner "$@" diff --git a/linux/ecosystem/gitlab/runner/php8.2/install-gitlab-runner.sh b/linux/ecosystem/gitlab/runner/php8.2/install-gitlab-runner.sh new file mode 100755 index 000000000..833bf928e --- /dev/null +++ b/linux/ecosystem/gitlab/runner/php8.2/install-gitlab-runner.sh @@ -0,0 +1,10 @@ +#!/usr/bin/env bash +set -eEo pipefail + +wget --no-check-certificate -c https://gitlab-runner-downloads.s3.amazonaws.com/latest/deb/gitlab-runner_amd64.deb --random-wait -O /tmp/gitlab-runner.deb + +dpkg -i "/tmp/gitlab-runner.deb" +apt-get update +apt-get -f install -y +rm -rfv /var/lib/apt/lists/* +rm -rfv "/tmp/gitlab-runner.deb" diff --git a/linux/ecosystem/gitlab/runner/php8.2/run-docker.sh b/linux/ecosystem/gitlab/runner/php8.2/run-docker.sh new file mode 100755 index 000000000..41b5e68e5 --- /dev/null +++ b/linux/ecosystem/gitlab/runner/php8.2/run-docker.sh @@ -0,0 +1,7 @@ +#!/bin/bash + +if [ "$DOCKER_IN_DOCKER" = "start" ] ; then + rm /var/run/docker.pid 2>/dev/null + service docker start + echo "Docker daemon started" +fi diff --git a/linux/ecosystem/gitlab/runner/php8.3/Dockerfile b/linux/ecosystem/gitlab/runner/php8.3/Dockerfile new file mode 100644 index 000000000..27c9c3112 --- /dev/null +++ b/linux/ecosystem/gitlab/runner/php8.3/Dockerfile @@ -0,0 +1,81 @@ +FROM epicmorg/php:php8.3 +LABEL maintainer="EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# php +################################################################## +RUN php -m && \ + php -v + +ENV GITLAB_RUNNER_HOME=/home/gitlab-runner +ENV GITLAB_RUNNER_CONF=/etc/gitlab-runner +ENV GIT_SSH_VARIANT=ssh +RUN mkdir -p ${GITLAB_RUNNER_HOME} ${GITLAB_RUNNER_CONF} ${GITLAB_RUNNER_CONF}/certs && \ + chmod -R 700 /etc/gitlab-runner + +################################################################## +# docker setup +################################################################## + +#Install packages +RUN curl -fsSL https://download.docker.com/linux/debian/gpg | apt-key add - && \ + echo 'deb https://download.docker.com/linux/debian bookworm test' > /etc/apt/sources.list.d/docker.list && \ + echo 'deb https://download.docker.com/linux/debian bookworm nightly' >> /etc/apt/sources.list.d/docker.list && \ + apt-cache policy docker-ce && \ + apt-get update && \ + apt-get install -y --no-install-recommends --allow-unauthenticated \ + docker-ce \ + docker-ce-cli \ + containerd.io systemd && \ + systemctl disable docker && \ + docker --version + +COPY run-docker.sh /services/run-docker.sh +RUN chmod +x /services/run-docker.sh && \ + sync + +################################################################## +# docker compose setup +################################################################## + +#Install packages +RUN export DOCKER_COMPOSE_VERSION=`curl --silent https://api.github.com/repos/docker/compose/releases/latest | jq .name -r` && \ + echo "Latest compose is: ${DOCKER_COMPOSE_VERSION}" && \ + curl -SL https://github.com/docker/compose/releases/download/${DOCKER_COMPOSE_VERSION}/docker-compose-Linux-x86_64 -o /usr/local/bin/docker-compose && \ + chmod +x /usr/local/bin/docker-compose && \ + docker-compose --version + +################################################################## +# gitlab runner setup +################################################################## +COPY install-gitlab-runner.sh /tmp/install-gitlab-runner.sh +RUN cd /tmp && \ + chmod +x /tmp/install-gitlab-runner.sh && \ + bash /tmp/install-gitlab-runner.sh && \ +# useradd --comment 'GitLab Runner' --create-home gitlab-runner --shell /bin/bash && \ + usermod -aG docker gitlab-runner && \ + cat /etc/passwd && \ + gitlab-runner --version + +################################################################## +# cleaninig up +################################################################## +RUN apt clean -y && \ + apt-get clean all && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb && \ + rm -rfv /tmp/* + +#Final config +STOPSIGNAL SIGQUIT +VOLUME ["${GITLAB_RUNNER_CONF}", "/home/gitlab-runner", "/var/lib/docker"] +WORKDIR /home/gitlab-runner + +# Add image configuration and scripts +COPY docker-entrypoint.sh /usr/bin/docker-entrypoint.sh +RUN chmod 755 /usr/bin/docker-entrypoint.sh + +ENTRYPOINT ["/usr/bin/dumb-init", "docker-entrypoint.sh"] +CMD ["run", "--user=gitlab-runner", "--working-directory=/home/gitlab-runner"] diff --git a/linux/ecosystem/gitlab/runner/php8.3/Makefile b/linux/ecosystem/gitlab/runner/php8.3/Makefile new file mode 100644 index 000000000..9ef622aa9 --- /dev/null +++ b/linux/ecosystem/gitlab/runner/php8.3/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel --progress plain + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/gitlab/runner/php8.3/README.md b/linux/ecosystem/gitlab/runner/php8.3/README.md new file mode 100644 index 000000000..e69de29bb diff --git a/linux/ecosystem/gitlab/runner/php8.3/docker-compose.yml b/linux/ecosystem/gitlab/runner/php8.3/docker-compose.yml new file mode 100644 index 000000000..bec0820a9 --- /dev/null +++ b/linux/ecosystem/gitlab/runner/php8.3/docker-compose.yml @@ -0,0 +1,6 @@ +version: '3' +services: + app: + image: "epicmorg/gitlab-runner:php8.3" + build: + context: . diff --git a/linux/ecosystem/gitlab/runner/php8.3/docker-entrypoint.sh b/linux/ecosystem/gitlab/runner/php8.3/docker-entrypoint.sh new file mode 100755 index 000000000..53350fa8f --- /dev/null +++ b/linux/ecosystem/gitlab/runner/php8.3/docker-entrypoint.sh @@ -0,0 +1,22 @@ +#!/bin/bash + +# gitlab-runner data directory +DATA_DIR="/etc/gitlab-runner" +CONFIG_FILE=${CONFIG_FILE:-$DATA_DIR/config.toml} +# custom certificate authority path +CA_CERTIFICATES_PATH=${CA_CERTIFICATES_PATH:-$DATA_DIR/certs/ca.crt} +LOCAL_CA_PATH="/usr/local/share/ca-certificates/ca.crt" + +update_ca() { + echo "Updating CA certificates..." + cp "${CA_CERTIFICATES_PATH}" "${LOCAL_CA_PATH}" + update-ca-certificates --fresh >/dev/null +} + +if [ -f "${CA_CERTIFICATES_PATH}" ]; then + # update the ca if the custom ca is different than the current + cmp --silent "${CA_CERTIFICATES_PATH}" "${LOCAL_CA_PATH}" || update_ca +fi + +# launch gitlab-runner passing all arguments +exec gitlab-runner "$@" diff --git a/linux/ecosystem/gitlab/runner/php8.3/install-gitlab-runner.sh b/linux/ecosystem/gitlab/runner/php8.3/install-gitlab-runner.sh new file mode 100755 index 000000000..833bf928e --- /dev/null +++ b/linux/ecosystem/gitlab/runner/php8.3/install-gitlab-runner.sh @@ -0,0 +1,10 @@ +#!/usr/bin/env bash +set -eEo pipefail + +wget --no-check-certificate -c https://gitlab-runner-downloads.s3.amazonaws.com/latest/deb/gitlab-runner_amd64.deb --random-wait -O /tmp/gitlab-runner.deb + +dpkg -i "/tmp/gitlab-runner.deb" +apt-get update +apt-get -f install -y +rm -rfv /var/lib/apt/lists/* +rm -rfv "/tmp/gitlab-runner.deb" diff --git a/linux/ecosystem/gitlab/runner/php8.3/run-docker.sh b/linux/ecosystem/gitlab/runner/php8.3/run-docker.sh new file mode 100755 index 000000000..41b5e68e5 --- /dev/null +++ b/linux/ecosystem/gitlab/runner/php8.3/run-docker.sh @@ -0,0 +1,7 @@ +#!/bin/bash + +if [ "$DOCKER_IN_DOCKER" = "start" ] ; then + rm /var/run/docker.pid 2>/dev/null + service docker start + echo "Docker daemon started" +fi diff --git a/linux/ecosystem/nodejs/current/Dockerfile b/linux/ecosystem/nodejs/current/Dockerfile index 53a27232b..28bad0784 100644 --- a/linux/ecosystem/nodejs/current/Dockerfile +++ b/linux/ecosystem/nodejs/current/Dockerfile @@ -1,24 +1,33 @@ FROM epicmorg/debian:bookworm LABEL maintainer="EpicMorg DevTeam, developer@epicm.org" + ARG DEBIAN_FRONTEND=noninteractive +ARG K_NODE_MAJOR_VERSION=22 +ARG K_NODE_VERSION=${K_NODE_MAJOR_VERSION}.3.0 +ARG K_NODE_URL=https://nodejs.org/dist/v${K_NODE_VERSION}/node-v${K_NODE_VERSION}-linux-x64.tar.gz +ARG K_NODE_HEADERS_URL=https://nodejs.org/dist/v${K_NODE_VERSION}/node-v${K_NODE_VERSION}-headers.tar.gz + ################################################################## -# Node.js Current +# Node.js 22.x ################################################################## -RUN groupadd node && \ - useradd --gid node --shell /bin/bash --create-home node +RUN groupadd -g 1337 node && \ + useradd -u 1337 --gid node --shell /bin/bash --create-home node -RUN curl -fsSL https://deb.nodesource.com/setup_current.x | bash - && \ - curl -fsSL https://dl.yarnpkg.com/debian/pubkey.gpg | sudo gpg --dearmor -o /etc/apt/keyrings/yarnpkg.gpg && \ - echo "deb [signed-by=/etc/apt/keyrings/yarnpkg.gpg] https://nightly.yarnpkg.com/debian/ nightly main" > /etc/apt/sources.list.d/yarn.list && \ - apt-get clean && apt-get autoclean && \ - apt-get update && \ - apt-get install -y nodejs yarn && \ - npm install -g pnpm +RUN curl --user-agent "Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Firefox/81.0" --location ${K_NODE_URL}?$(date +%s) \ + --header 'Cache-Control: no-cache, no-store' \ + --header 'Pragma: no-cache' | tar xzv --strip-components=1 --directory /usr/local/ && \ + rm -rfv /usr/local/CHANGELOG.md /usr/local/LICENSE /usr/local/README.md -#RUN curl -L https://www.npmjs.com/install.sh | bash && \ -# npm install -g npm +RUN curl --user-agent "Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Firefox/81.0" --location ${K_NODE_HEADERS_URL}?$(date +%s) \ + --header 'Cache-Control: no-cache, no-store' \ + --header 'Pragma: no-cache' | tar xzv --strip-components=1 --directory /usr/local/ +RUN npm install -g pnpm yarn + +################################################################## +# Version after install +################################################################## RUN echo "=============================================" && \ echo node $(node --version) && \ echo npm $(npm --version) && \ @@ -27,11 +36,11 @@ RUN echo "=============================================" && \ echo "=============================================" ################################################################## -# cleaninig up +# cleanup ################################################################## -RUN apt clean -y && \ - apt-get clean all && \ - apt autoclean -y && \ - rm -rfv /var/lib/apt/lists/* && \ - rm -rfv /var/cache/apt/archives/*.deb && \ - rm -rfv /tmp/* +RUN apt-get purge policykit-1 -y && \ +apt-get clean -y && \ +apt-get autoclean -y && \ +rm -rfv /var/lib/apt/lists/* && \ +rm -rfv /var/cache/apt/archives/*.deb && \ +rm -rfv /tmp/* diff --git a/linux/ecosystem/nodejs/lts/Dockerfile b/linux/ecosystem/nodejs/lts/Dockerfile index fe431a679..3d1de2104 100644 --- a/linux/ecosystem/nodejs/lts/Dockerfile +++ b/linux/ecosystem/nodejs/lts/Dockerfile @@ -1,24 +1,33 @@ -FROM epicmorg/debian:bullseye +FROM epicmorg/debian:bookworm LABEL maintainer="EpicMorg DevTeam, developer@epicm.org" + ARG DEBIAN_FRONTEND=noninteractive +ARG K_NODE_MAJOR_VERSION=20 +ARG K_NODE_VERSION=${K_NODE_MAJOR_VERSION}.15.0 +ARG K_NODE_URL=https://nodejs.org/dist/v${K_NODE_VERSION}/node-v${K_NODE_VERSION}-linux-x64.tar.gz +ARG K_NODE_HEADERS_URL=https://nodejs.org/dist/v${K_NODE_VERSION}/node-v${K_NODE_VERSION}-headers.tar.gz + ################################################################## -# Node.js LTS +# Node.js 20.x ################################################################## -RUN groupadd node && \ - useradd --gid node --shell /bin/bash --create-home node +RUN groupadd -g 1337 node && \ + useradd -u 1337 --gid node --shell /bin/bash --create-home node -RUN curl -fsSL https://deb.nodesource.com/setup_lts.x | bash - && \ - curl -fsSL https://dl.yarnpkg.com/debian/pubkey.gpg | sudo gpg --dearmor -o /etc/apt/keyrings/yarnpkg.gpg && \ - echo "deb [signed-by=/etc/apt/keyrings/yarnpkg.gpg] https://nightly.yarnpkg.com/debian/ nightly main" > /etc/apt/sources.list.d/yarn.list && \ - apt-get clean && apt-get autoclean && \ - apt-get update && \ - apt-get install -y nodejs yarn && \ - npm install -g pnpm +RUN curl --user-agent "Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Firefox/81.0" --location ${K_NODE_URL}?$(date +%s) \ + --header 'Cache-Control: no-cache, no-store' \ + --header 'Pragma: no-cache' | tar xzv --strip-components=1 --directory /usr/local/ && \ + rm -rfv /usr/local/CHANGELOG.md /usr/local/LICENSE /usr/local/README.md -#RUN curl -L https://www.npmjs.com/install.sh | bash && \ -# npm install -g npm +RUN curl --user-agent "Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Firefox/81.0" --location ${K_NODE_HEADERS_URL}?$(date +%s) \ + --header 'Cache-Control: no-cache, no-store' \ + --header 'Pragma: no-cache' | tar xzv --strip-components=1 --directory /usr/local/ +RUN npm install -g pnpm yarn + +################################################################## +# Version after install +################################################################## RUN echo "=============================================" && \ echo node $(node --version) && \ echo npm $(npm --version) && \ @@ -27,11 +36,11 @@ RUN echo "=============================================" && \ echo "=============================================" ################################################################## -# cleaninig up +# cleanup ################################################################## -RUN apt clean -y && \ - apt-get clean all && \ - apt autoclean -y && \ - rm -rfv /var/lib/apt/lists/* && \ - rm -rfv /var/cache/apt/archives/*.deb && \ - rm -rfv /tmp/* +RUN apt-get purge policykit-1 -y && \ +apt-get clean -y && \ +apt-get autoclean -y && \ +rm -rfv /var/lib/apt/lists/* && \ +rm -rfv /var/cache/apt/archives/*.deb && \ +rm -rfv /tmp/* diff --git a/linux/ecosystem/nodejs/node0.12/Dockerfile b/linux/ecosystem/nodejs/node0.12/Dockerfile new file mode 100644 index 000000000..2e5ae4457 --- /dev/null +++ b/linux/ecosystem/nodejs/node0.12/Dockerfile @@ -0,0 +1,46 @@ +FROM epicmorg/debian:bookworm +LABEL maintainer="EpicMorg DevTeam, developer@epicm.org" + +ARG DEBIAN_FRONTEND=noninteractive + +ARG K_NODE_MAJOR_VERSION=0 +ARG K_NODE_VERSION=${K_NODE_MAJOR_VERSION}.12.18 +ARG K_NODE_URL=https://nodejs.org/dist/v${K_NODE_VERSION}/node-v${K_NODE_VERSION}-linux-x64.tar.gz +ARG K_NODE_HEADERS_URL=https://nodejs.org/dist/v${K_NODE_VERSION}/node-v${K_NODE_VERSION}-headers.tar.gz + +################################################################## +# Node.js 0.x +################################################################## +RUN groupadd -g 1337 node && \ + useradd -u 1337 --gid node --shell /bin/bash --create-home node + +RUN curl --user-agent "Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Firefox/81.0" --location ${K_NODE_URL}?$(date +%s) \ + --header 'Cache-Control: no-cache, no-store' \ + --header 'Pragma: no-cache' | tar xzv --strip-components=1 --directory /usr/local/ && \ + rm -rfv /usr/local/CHANGELOG.md /usr/local/LICENSE /usr/local/README.md + +RUN curl --user-agent "Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Firefox/81.0" --location ${K_NODE_HEADERS_URL}?$(date +%s) \ + --header 'Cache-Control: no-cache, no-store' \ + --header 'Pragma: no-cache' | tar xzv --strip-components=1 --directory /usr/local/ + +#RUN npm install -g pnpm yarn + +################################################################## +# Version after install +################################################################## +RUN echo "=============================================" && \ + echo node $(node --version) && \ + echo npm $(npm --version) && \ +# echo yarn $(yarn --version) && \ +# echo pnpm $(pnpm --version) && \ + echo "=============================================" + +################################################################## +# cleanup +################################################################## +RUN apt-get purge policykit-1 -y && \ +apt-get clean -y && \ +apt-get autoclean -y && \ +rm -rfv /var/lib/apt/lists/* && \ +rm -rfv /var/cache/apt/archives/*.deb && \ +rm -rfv /tmp/* diff --git a/linux/ecosystem/nodejs/node0.12/Makefile b/linux/ecosystem/nodejs/node0.12/Makefile new file mode 100644 index 000000000..9ef622aa9 --- /dev/null +++ b/linux/ecosystem/nodejs/node0.12/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel --progress plain + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/nodejs/outdated/node4/README.md b/linux/ecosystem/nodejs/node0.12/README.md similarity index 100% rename from linux/ecosystem/nodejs/outdated/node4/README.md rename to linux/ecosystem/nodejs/node0.12/README.md diff --git a/linux/ecosystem/nodejs/node0.12/docker-compose.yml b/linux/ecosystem/nodejs/node0.12/docker-compose.yml new file mode 100644 index 000000000..e8911ffe3 --- /dev/null +++ b/linux/ecosystem/nodejs/node0.12/docker-compose.yml @@ -0,0 +1,6 @@ +version: '3' +services: + app: + image: "epicmorg/nodejs:node0.12" + build: + context: . diff --git a/linux/ecosystem/nodejs/node10/Dockerfile b/linux/ecosystem/nodejs/node10/Dockerfile new file mode 100644 index 000000000..207503df4 --- /dev/null +++ b/linux/ecosystem/nodejs/node10/Dockerfile @@ -0,0 +1,46 @@ +FROM epicmorg/debian:bookworm +LABEL maintainer="EpicMorg DevTeam, developer@epicm.org" + +ARG DEBIAN_FRONTEND=noninteractive + +ARG K_NODE_MAJOR_VERSION=10 +ARG K_NODE_VERSION=${K_NODE_MAJOR_VERSION}.24.1 +ARG K_NODE_URL=https://nodejs.org/dist/v${K_NODE_VERSION}/node-v${K_NODE_VERSION}-linux-x64.tar.gz +ARG K_NODE_HEADERS_URL=https://nodejs.org/dist/v${K_NODE_VERSION}/node-v${K_NODE_VERSION}-headers.tar.gz + +################################################################## +# Node.js 10.x +################################################################## +RUN groupadd -g 1337 node && \ + useradd -u 1337 --gid node --shell /bin/bash --create-home node + +RUN curl --user-agent "Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Firefox/81.0" --location ${K_NODE_URL}?$(date +%s) \ + --header 'Cache-Control: no-cache, no-store' \ + --header 'Pragma: no-cache' | tar xzv --strip-components=1 --directory /usr/local/ && \ + rm -rfv /usr/local/CHANGELOG.md /usr/local/LICENSE /usr/local/README.md + +RUN curl --user-agent "Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Firefox/81.0" --location ${K_NODE_HEADERS_URL}?$(date +%s) \ + --header 'Cache-Control: no-cache, no-store' \ + --header 'Pragma: no-cache' | tar xzv --strip-components=1 --directory /usr/local/ + +RUN npm install -g pnpm@5 yarn + +################################################################## +# Version after install +################################################################## +RUN echo "=============================================" && \ + echo node $(node --version) && \ + echo npm $(npm --version) && \ + echo yarn $(yarn --version) && \ + echo pnpm $(pnpm --version) && \ + echo "=============================================" + +################################################################## +# cleanup +################################################################## +RUN apt-get purge policykit-1 -y && \ +apt-get clean -y && \ +apt-get autoclean -y && \ +rm -rfv /var/lib/apt/lists/* && \ +rm -rfv /var/cache/apt/archives/*.deb && \ +rm -rfv /tmp/* diff --git a/linux/ecosystem/nodejs/node10/Makefile b/linux/ecosystem/nodejs/node10/Makefile new file mode 100644 index 000000000..9ef622aa9 --- /dev/null +++ b/linux/ecosystem/nodejs/node10/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel --progress plain + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/nodejs/outdated/node6/README.md b/linux/ecosystem/nodejs/node10/README.md similarity index 100% rename from linux/ecosystem/nodejs/outdated/node6/README.md rename to linux/ecosystem/nodejs/node10/README.md diff --git a/linux/ecosystem/nodejs/outdated/node10/docker-compose.yml b/linux/ecosystem/nodejs/node10/docker-compose.yml similarity index 100% rename from linux/ecosystem/nodejs/outdated/node10/docker-compose.yml rename to linux/ecosystem/nodejs/node10/docker-compose.yml diff --git a/linux/ecosystem/nodejs/node11/Dockerfile b/linux/ecosystem/nodejs/node11/Dockerfile new file mode 100644 index 000000000..d6022e5eb --- /dev/null +++ b/linux/ecosystem/nodejs/node11/Dockerfile @@ -0,0 +1,46 @@ +FROM epicmorg/debian:bookworm +LABEL maintainer="EpicMorg DevTeam, developer@epicm.org" + +ARG DEBIAN_FRONTEND=noninteractive + +ARG K_NODE_MAJOR_VERSION=11 +ARG K_NODE_VERSION=${K_NODE_MAJOR_VERSION}.15.0 +ARG K_NODE_URL=https://nodejs.org/dist/v${K_NODE_VERSION}/node-v${K_NODE_VERSION}-linux-x64.tar.gz +ARG K_NODE_HEADERS_URL=https://nodejs.org/dist/v${K_NODE_VERSION}/node-v${K_NODE_VERSION}-headers.tar.gz + +################################################################## +# Node.js 11.x +################################################################## +RUN groupadd -g 1337 node && \ + useradd -u 1337 --gid node --shell /bin/bash --create-home node + +RUN curl --user-agent "Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Firefox/81.0" --location ${K_NODE_URL}?$(date +%s) \ + --header 'Cache-Control: no-cache, no-store' \ + --header 'Pragma: no-cache' | tar xzv --strip-components=1 --directory /usr/local/ && \ + rm -rfv /usr/local/CHANGELOG.md /usr/local/LICENSE /usr/local/README.md + +RUN curl --user-agent "Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Firefox/81.0" --location ${K_NODE_HEADERS_URL}?$(date +%s) \ + --header 'Cache-Control: no-cache, no-store' \ + --header 'Pragma: no-cache' | tar xzv --strip-components=1 --directory /usr/local/ + +RUN npm install -g pnpm@5 yarn + +################################################################## +# Version after install +################################################################## +RUN echo "=============================================" && \ + echo node $(node --version) && \ + echo npm $(npm --version) && \ + echo yarn $(yarn --version) && \ + echo pnpm $(pnpm --version) && \ + echo "=============================================" + +################################################################## +# cleanup +################################################################## +RUN apt-get purge policykit-1 -y && \ +apt-get clean -y && \ +apt-get autoclean -y && \ +rm -rfv /var/lib/apt/lists/* && \ +rm -rfv /var/cache/apt/archives/*.deb && \ +rm -rfv /tmp/* diff --git a/linux/ecosystem/nodejs/node11/Makefile b/linux/ecosystem/nodejs/node11/Makefile new file mode 100644 index 000000000..9ef622aa9 --- /dev/null +++ b/linux/ecosystem/nodejs/node11/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel --progress plain + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/nodejs/outdated/node8/README.md b/linux/ecosystem/nodejs/node11/README.md similarity index 100% rename from linux/ecosystem/nodejs/outdated/node8/README.md rename to linux/ecosystem/nodejs/node11/README.md diff --git a/linux/ecosystem/nodejs/outdated/node11/docker-compose.yml b/linux/ecosystem/nodejs/node11/docker-compose.yml similarity index 100% rename from linux/ecosystem/nodejs/outdated/node11/docker-compose.yml rename to linux/ecosystem/nodejs/node11/docker-compose.yml diff --git a/linux/ecosystem/nodejs/node12/Dockerfile b/linux/ecosystem/nodejs/node12/Dockerfile new file mode 100644 index 000000000..4c58cda95 --- /dev/null +++ b/linux/ecosystem/nodejs/node12/Dockerfile @@ -0,0 +1,46 @@ +FROM epicmorg/debian:bookworm +LABEL maintainer="EpicMorg DevTeam, developer@epicm.org" + +ARG DEBIAN_FRONTEND=noninteractive + +ARG K_NODE_MAJOR_VERSION=12 +ARG K_NODE_VERSION=${K_NODE_MAJOR_VERSION}.22.9 +ARG K_NODE_URL=https://nodejs.org/dist/v${K_NODE_VERSION}/node-v${K_NODE_VERSION}-linux-x64.tar.gz +ARG K_NODE_HEADERS_URL=https://nodejs.org/dist/v${K_NODE_VERSION}/node-v${K_NODE_VERSION}-headers.tar.gz + +################################################################## +# Node.js 12.x +################################################################## +RUN groupadd -g 1337 node && \ + useradd -u 1337 --gid node --shell /bin/bash --create-home node + +RUN curl --user-agent "Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Firefox/81.0" --location ${K_NODE_URL}?$(date +%s) \ + --header 'Cache-Control: no-cache, no-store' \ + --header 'Pragma: no-cache' | tar xzv --strip-components=1 --directory /usr/local/ && \ + rm -rfv /usr/local/CHANGELOG.md /usr/local/LICENSE /usr/local/README.md + +RUN curl --user-agent "Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Firefox/81.0" --location ${K_NODE_HEADERS_URL}?$(date +%s) \ + --header 'Cache-Control: no-cache, no-store' \ + --header 'Pragma: no-cache' | tar xzv --strip-components=1 --directory /usr/local/ + +RUN npm install -g pnpm@6 yarn + +################################################################## +# Version after install +################################################################## +RUN echo "=============================================" && \ + echo node $(node --version) && \ + echo npm $(npm --version) && \ + echo yarn $(yarn --version) && \ + echo pnpm $(pnpm --version) && \ + echo "=============================================" + +################################################################## +# cleanup +################################################################## +RUN apt-get purge policykit-1 -y && \ +apt-get clean -y && \ +apt-get autoclean -y && \ +rm -rfv /var/lib/apt/lists/* && \ +rm -rfv /var/cache/apt/archives/*.deb && \ +rm -rfv /tmp/* diff --git a/linux/ecosystem/nodejs/node12/Makefile b/linux/ecosystem/nodejs/node12/Makefile new file mode 100644 index 000000000..9ef622aa9 --- /dev/null +++ b/linux/ecosystem/nodejs/node12/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel --progress plain + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/nodejs/node12/README.md b/linux/ecosystem/nodejs/node12/README.md new file mode 100644 index 000000000..b53fe01e8 --- /dev/null +++ b/linux/ecosystem/nodejs/node12/README.md @@ -0,0 +1,93 @@ +## TeamCity Minimal Build Agent + +[](https://confluence.jetbrains.com/display/ALL/JetBrains+on+GitHub) + +This is an official [JetBrains TeamCity](https://www.jetbrains.com/teamcity/) minimal build agent image. + + More details about tags and components are [here](https://github.com/JetBrains/teamcity-docker-images/blob/master/generated/teamcity-minimal-agent.md). + +The [TeamCity build agent](https://www.jetbrains.com/help/teamcity/build-agent.html) connects to the TeamCity server and spawns the actual build processes. +You can use the ```jetbrains/teamcity-server``` image to run a TeamCity server. + +This minimal image adds just a TeamCity agent without any tools like VCS clients, etc. It is suitable for simple builds and can serve as a base for your custom images. For Java or .NET development we recommend using the default build agent image [jetbrains/teamcity-agent](https://hub.docker.com/r/jetbrains/teamcity-agent/). + +## How to Use This Image + +Pull the TeamCity minimal image from the Docker Hub Repository: + +``` +jetbrains/teamcity-minimal-agent +``` +  +and use the following command to start a container with TeamCity agent running inside +a Linux container: + +``` +docker run -it -e SERVER_URL="" \ + -v :/data/teamcity_agent/conf \ + jetbrains/teamcity-minimal-agent +``` +  +or a Windows container: +``` +docker run -it -e SERVER_URL="" + -v :C:/BuildAgent/conf + jetbrains/teamcity-minimal-agent +``` +where `` is the full URL for TeamCity server, accessible by the agent. Note that `localhost` will not generally not work as it will refer to the `localhost` inside the container. +`` is the host machine directory to serve as the TeamCity agent config directory. We recommend providing this binding in order to persist the agent configuration, e.g. authorization on the server. Note that you should map a different folder for every new agent you create. + +Since version 2020.1, TeamCity agent Docker images __run under a non-root user__. Refer to our [upgrade notes](https://www.jetbrains.com/help/teamcity/upgrade-notes.html#UpgradeNotes-AgentDockerimagesrunundernon-rootuser) for information on possible affected use cases. + +When you run the agent for the first time, you should authorize it via the TeamCity server UI: go to the **Unauthorized Agents** page in your browser. See [more details](https://www.jetbrains.com/help/teamcity/build-agent.html). + +All information about agent authorization is stored in agent's configuration folder. If you stop the container with the agent and then start a new one with the same config folder, the agent's name and authorization state will be preserved. + +TeamCity agent does not need manual upgrade: it will upgrade itself automatically on connecting to an upgraded server. + +### Agent Image Environment Variables + +- **SERVER_URL** - URL of the TeamCity server agent will connect to +- **AGENT_NAME** - (optional) Name of the agent in TeamCity UI, autogenerated if omitted +- **AGENT_TOKEN** - (optional) Agent authorization token, if unset, the agent should be [authorized](https://www.jetbrains.com/help/teamcity/build-agent.html#BuildAgent-BuildAgentStatus) via TeamCity UI. +- **OWN_ADDRESS** - (optional, linux only) IP address build agent binds to, autodetected +- **OWN_PORT** - (optional, linux only) Port build agent binds to, 9090 by default + +### Windows Containers Limitations + +The details on the known problems in Windows containers are available in the [TeamCity documentation](https://www.jetbrains.com/help/teamcity/known-issues.html#KnownIssues-WindowsDockerContainers). + +## Customization + +You can customize the image via the usual Docker procedure: + +1. Run the image +``` +docker run -it -e SERVER_URL="" \ + -v :/data/teamcity_agent/conf \ + --name="my-customized-agent" \ + jetbrains/teamcity-minimal-agent \ +``` +2. Enter the container +``` +docker exec -it my-customized-agent bash +``` + +3. Change whatever you need +4. Exit and [create a new image](https://docs.docker.com/engine/reference/commandline/commit/) from the container +``` +docker commit my-customized-agent +``` + +## License + +The image is available under the [TeamCity license](https://www.jetbrains.com/teamcity/buy/license.html). +TeamCity is free for perpetual use with the limitation of 100 build configurations (jobs) and 3 agents. [Licensing details](https://www.jetbrains.com/help/teamcity/licensing-policy.html). + +## Feedback + +Report issues of suggestions to the official TeamCity [issue tracker](https://youtrack.jetbrains.com/issues/TW). + +## Other TeamCity Images +* [TeamCity Server](https://hub.docker.com/r/jetbrains/teamcity-server/) +* [Build Agent](https://hub.docker.com/r/jetbrains/teamcity-agent/) diff --git a/linux/ecosystem/nodejs/outdated/node12/docker-compose.yml b/linux/ecosystem/nodejs/node12/docker-compose.yml similarity index 100% rename from linux/ecosystem/nodejs/outdated/node12/docker-compose.yml rename to linux/ecosystem/nodejs/node12/docker-compose.yml diff --git a/linux/ecosystem/nodejs/node13/Dockerfile b/linux/ecosystem/nodejs/node13/Dockerfile new file mode 100644 index 000000000..356d3d53c --- /dev/null +++ b/linux/ecosystem/nodejs/node13/Dockerfile @@ -0,0 +1,46 @@ +FROM epicmorg/debian:bookworm +LABEL maintainer="EpicMorg DevTeam, developer@epicm.org" + +ARG DEBIAN_FRONTEND=noninteractive + +ARG K_NODE_MAJOR_VERSION=13 +ARG K_NODE_VERSION=${K_NODE_MAJOR_VERSION}.14.0 +ARG K_NODE_URL=https://nodejs.org/dist/v${K_NODE_VERSION}/node-v${K_NODE_VERSION}-linux-x64.tar.gz +ARG K_NODE_HEADERS_URL=https://nodejs.org/dist/v${K_NODE_VERSION}/node-v${K_NODE_VERSION}-headers.tar.gz + +################################################################## +# Node.js 13.x +################################################################## +RUN groupadd -g 1337 node && \ + useradd -u 1337 --gid node --shell /bin/bash --create-home node + +RUN curl --user-agent "Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Firefox/81.0" --location ${K_NODE_URL}?$(date +%s) \ + --header 'Cache-Control: no-cache, no-store' \ + --header 'Pragma: no-cache' | tar xzv --strip-components=1 --directory /usr/local/ && \ + rm -rfv /usr/local/CHANGELOG.md /usr/local/LICENSE /usr/local/README.md + +RUN curl --user-agent "Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Firefox/81.0" --location ${K_NODE_HEADERS_URL}?$(date +%s) \ + --header 'Cache-Control: no-cache, no-store' \ + --header 'Pragma: no-cache' | tar xzv --strip-components=1 --directory /usr/local/ + +RUN npm install -g pnpm@6 yarn + +################################################################## +# Version after install +################################################################## +RUN echo "=============================================" && \ + echo node $(node --version) && \ + echo npm $(npm --version) && \ + echo yarn $(yarn --version) && \ + echo pnpm $(pnpm --version) && \ + echo "=============================================" + +################################################################## +# cleanup +################################################################## +RUN apt-get purge policykit-1 -y && \ +apt-get clean -y && \ +apt-get autoclean -y && \ +rm -rfv /var/lib/apt/lists/* && \ +rm -rfv /var/cache/apt/archives/*.deb && \ +rm -rfv /tmp/* diff --git a/linux/ecosystem/nodejs/node13/Makefile b/linux/ecosystem/nodejs/node13/Makefile new file mode 100644 index 000000000..9ef622aa9 --- /dev/null +++ b/linux/ecosystem/nodejs/node13/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel --progress plain + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/nodejs/node13/README.md b/linux/ecosystem/nodejs/node13/README.md new file mode 100644 index 000000000..b53fe01e8 --- /dev/null +++ b/linux/ecosystem/nodejs/node13/README.md @@ -0,0 +1,93 @@ +## TeamCity Minimal Build Agent + +[](https://confluence.jetbrains.com/display/ALL/JetBrains+on+GitHub) + +This is an official [JetBrains TeamCity](https://www.jetbrains.com/teamcity/) minimal build agent image. + + More details about tags and components are [here](https://github.com/JetBrains/teamcity-docker-images/blob/master/generated/teamcity-minimal-agent.md). + +The [TeamCity build agent](https://www.jetbrains.com/help/teamcity/build-agent.html) connects to the TeamCity server and spawns the actual build processes. +You can use the ```jetbrains/teamcity-server``` image to run a TeamCity server. + +This minimal image adds just a TeamCity agent without any tools like VCS clients, etc. It is suitable for simple builds and can serve as a base for your custom images. For Java or .NET development we recommend using the default build agent image [jetbrains/teamcity-agent](https://hub.docker.com/r/jetbrains/teamcity-agent/). + +## How to Use This Image + +Pull the TeamCity minimal image from the Docker Hub Repository: + +``` +jetbrains/teamcity-minimal-agent +``` +  +and use the following command to start a container with TeamCity agent running inside +a Linux container: + +``` +docker run -it -e SERVER_URL="" \ + -v :/data/teamcity_agent/conf \ + jetbrains/teamcity-minimal-agent +``` +  +or a Windows container: +``` +docker run -it -e SERVER_URL="" + -v :C:/BuildAgent/conf + jetbrains/teamcity-minimal-agent +``` +where `` is the full URL for TeamCity server, accessible by the agent. Note that `localhost` will not generally not work as it will refer to the `localhost` inside the container. +`` is the host machine directory to serve as the TeamCity agent config directory. We recommend providing this binding in order to persist the agent configuration, e.g. authorization on the server. Note that you should map a different folder for every new agent you create. + +Since version 2020.1, TeamCity agent Docker images __run under a non-root user__. Refer to our [upgrade notes](https://www.jetbrains.com/help/teamcity/upgrade-notes.html#UpgradeNotes-AgentDockerimagesrunundernon-rootuser) for information on possible affected use cases. + +When you run the agent for the first time, you should authorize it via the TeamCity server UI: go to the **Unauthorized Agents** page in your browser. See [more details](https://www.jetbrains.com/help/teamcity/build-agent.html). + +All information about agent authorization is stored in agent's configuration folder. If you stop the container with the agent and then start a new one with the same config folder, the agent's name and authorization state will be preserved. + +TeamCity agent does not need manual upgrade: it will upgrade itself automatically on connecting to an upgraded server. + +### Agent Image Environment Variables + +- **SERVER_URL** - URL of the TeamCity server agent will connect to +- **AGENT_NAME** - (optional) Name of the agent in TeamCity UI, autogenerated if omitted +- **AGENT_TOKEN** - (optional) Agent authorization token, if unset, the agent should be [authorized](https://www.jetbrains.com/help/teamcity/build-agent.html#BuildAgent-BuildAgentStatus) via TeamCity UI. +- **OWN_ADDRESS** - (optional, linux only) IP address build agent binds to, autodetected +- **OWN_PORT** - (optional, linux only) Port build agent binds to, 9090 by default + +### Windows Containers Limitations + +The details on the known problems in Windows containers are available in the [TeamCity documentation](https://www.jetbrains.com/help/teamcity/known-issues.html#KnownIssues-WindowsDockerContainers). + +## Customization + +You can customize the image via the usual Docker procedure: + +1. Run the image +``` +docker run -it -e SERVER_URL="" \ + -v :/data/teamcity_agent/conf \ + --name="my-customized-agent" \ + jetbrains/teamcity-minimal-agent \ +``` +2. Enter the container +``` +docker exec -it my-customized-agent bash +``` + +3. Change whatever you need +4. Exit and [create a new image](https://docs.docker.com/engine/reference/commandline/commit/) from the container +``` +docker commit my-customized-agent +``` + +## License + +The image is available under the [TeamCity license](https://www.jetbrains.com/teamcity/buy/license.html). +TeamCity is free for perpetual use with the limitation of 100 build configurations (jobs) and 3 agents. [Licensing details](https://www.jetbrains.com/help/teamcity/licensing-policy.html). + +## Feedback + +Report issues of suggestions to the official TeamCity [issue tracker](https://youtrack.jetbrains.com/issues/TW). + +## Other TeamCity Images +* [TeamCity Server](https://hub.docker.com/r/jetbrains/teamcity-server/) +* [Build Agent](https://hub.docker.com/r/jetbrains/teamcity-agent/) diff --git a/linux/ecosystem/nodejs/outdated/node13/docker-compose.yml b/linux/ecosystem/nodejs/node13/docker-compose.yml similarity index 100% rename from linux/ecosystem/nodejs/outdated/node13/docker-compose.yml rename to linux/ecosystem/nodejs/node13/docker-compose.yml diff --git a/linux/ecosystem/nodejs/node14/Dockerfile b/linux/ecosystem/nodejs/node14/Dockerfile new file mode 100644 index 000000000..1f404ce38 --- /dev/null +++ b/linux/ecosystem/nodejs/node14/Dockerfile @@ -0,0 +1,46 @@ +FROM epicmorg/debian:bookworm +LABEL maintainer="EpicMorg DevTeam, developer@epicm.org" + +ARG DEBIAN_FRONTEND=noninteractive + +ARG K_NODE_MAJOR_VERSION=14 +ARG K_NODE_VERSION=${K_NODE_MAJOR_VERSION}.21.3 +ARG K_NODE_URL=https://nodejs.org/dist/v${K_NODE_VERSION}/node-v${K_NODE_VERSION}-linux-x64.tar.gz +ARG K_NODE_HEADERS_URL=https://nodejs.org/dist/v${K_NODE_VERSION}/node-v${K_NODE_VERSION}-headers.tar.gz + +################################################################## +# Node.js 14.x +################################################################## +RUN groupadd -g 1337 node && \ + useradd -u 1337 --gid node --shell /bin/bash --create-home node + +RUN curl --user-agent "Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Firefox/81.0" --location ${K_NODE_URL}?$(date +%s) \ + --header 'Cache-Control: no-cache, no-store' \ + --header 'Pragma: no-cache' | tar xzv --strip-components=1 --directory /usr/local/ && \ + rm -rfv /usr/local/CHANGELOG.md /usr/local/LICENSE /usr/local/README.md + +RUN curl --user-agent "Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Firefox/81.0" --location ${K_NODE_HEADERS_URL}?$(date +%s) \ + --header 'Cache-Control: no-cache, no-store' \ + --header 'Pragma: no-cache' | tar xzv --strip-components=1 --directory /usr/local/ + +RUN npm install -g pnpm@7 yarn + +################################################################## +# Version after install +################################################################## +RUN echo "=============================================" && \ + echo node $(node --version) && \ + echo npm $(npm --version) && \ + echo yarn $(yarn --version) && \ + echo pnpm $(pnpm --version) && \ + echo "=============================================" + +################################################################## +# cleanup +################################################################## +RUN apt-get purge policykit-1 -y && \ +apt-get clean -y && \ +apt-get autoclean -y && \ +rm -rfv /var/lib/apt/lists/* && \ +rm -rfv /var/cache/apt/archives/*.deb && \ +rm -rfv /tmp/* diff --git a/linux/ecosystem/nodejs/node14/Makefile b/linux/ecosystem/nodejs/node14/Makefile new file mode 100644 index 000000000..9ef622aa9 --- /dev/null +++ b/linux/ecosystem/nodejs/node14/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel --progress plain + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/nodejs/node14/README.md b/linux/ecosystem/nodejs/node14/README.md new file mode 100644 index 000000000..b53fe01e8 --- /dev/null +++ b/linux/ecosystem/nodejs/node14/README.md @@ -0,0 +1,93 @@ +## TeamCity Minimal Build Agent + +[](https://confluence.jetbrains.com/display/ALL/JetBrains+on+GitHub) + +This is an official [JetBrains TeamCity](https://www.jetbrains.com/teamcity/) minimal build agent image. + + More details about tags and components are [here](https://github.com/JetBrains/teamcity-docker-images/blob/master/generated/teamcity-minimal-agent.md). + +The [TeamCity build agent](https://www.jetbrains.com/help/teamcity/build-agent.html) connects to the TeamCity server and spawns the actual build processes. +You can use the ```jetbrains/teamcity-server``` image to run a TeamCity server. + +This minimal image adds just a TeamCity agent without any tools like VCS clients, etc. It is suitable for simple builds and can serve as a base for your custom images. For Java or .NET development we recommend using the default build agent image [jetbrains/teamcity-agent](https://hub.docker.com/r/jetbrains/teamcity-agent/). + +## How to Use This Image + +Pull the TeamCity minimal image from the Docker Hub Repository: + +``` +jetbrains/teamcity-minimal-agent +``` +  +and use the following command to start a container with TeamCity agent running inside +a Linux container: + +``` +docker run -it -e SERVER_URL="" \ + -v :/data/teamcity_agent/conf \ + jetbrains/teamcity-minimal-agent +``` +  +or a Windows container: +``` +docker run -it -e SERVER_URL="" + -v :C:/BuildAgent/conf + jetbrains/teamcity-minimal-agent +``` +where `` is the full URL for TeamCity server, accessible by the agent. Note that `localhost` will not generally not work as it will refer to the `localhost` inside the container. +`` is the host machine directory to serve as the TeamCity agent config directory. We recommend providing this binding in order to persist the agent configuration, e.g. authorization on the server. Note that you should map a different folder for every new agent you create. + +Since version 2020.1, TeamCity agent Docker images __run under a non-root user__. Refer to our [upgrade notes](https://www.jetbrains.com/help/teamcity/upgrade-notes.html#UpgradeNotes-AgentDockerimagesrunundernon-rootuser) for information on possible affected use cases. + +When you run the agent for the first time, you should authorize it via the TeamCity server UI: go to the **Unauthorized Agents** page in your browser. See [more details](https://www.jetbrains.com/help/teamcity/build-agent.html). + +All information about agent authorization is stored in agent's configuration folder. If you stop the container with the agent and then start a new one with the same config folder, the agent's name and authorization state will be preserved. + +TeamCity agent does not need manual upgrade: it will upgrade itself automatically on connecting to an upgraded server. + +### Agent Image Environment Variables + +- **SERVER_URL** - URL of the TeamCity server agent will connect to +- **AGENT_NAME** - (optional) Name of the agent in TeamCity UI, autogenerated if omitted +- **AGENT_TOKEN** - (optional) Agent authorization token, if unset, the agent should be [authorized](https://www.jetbrains.com/help/teamcity/build-agent.html#BuildAgent-BuildAgentStatus) via TeamCity UI. +- **OWN_ADDRESS** - (optional, linux only) IP address build agent binds to, autodetected +- **OWN_PORT** - (optional, linux only) Port build agent binds to, 9090 by default + +### Windows Containers Limitations + +The details on the known problems in Windows containers are available in the [TeamCity documentation](https://www.jetbrains.com/help/teamcity/known-issues.html#KnownIssues-WindowsDockerContainers). + +## Customization + +You can customize the image via the usual Docker procedure: + +1. Run the image +``` +docker run -it -e SERVER_URL="" \ + -v :/data/teamcity_agent/conf \ + --name="my-customized-agent" \ + jetbrains/teamcity-minimal-agent \ +``` +2. Enter the container +``` +docker exec -it my-customized-agent bash +``` + +3. Change whatever you need +4. Exit and [create a new image](https://docs.docker.com/engine/reference/commandline/commit/) from the container +``` +docker commit my-customized-agent +``` + +## License + +The image is available under the [TeamCity license](https://www.jetbrains.com/teamcity/buy/license.html). +TeamCity is free for perpetual use with the limitation of 100 build configurations (jobs) and 3 agents. [Licensing details](https://www.jetbrains.com/help/teamcity/licensing-policy.html). + +## Feedback + +Report issues of suggestions to the official TeamCity [issue tracker](https://youtrack.jetbrains.com/issues/TW). + +## Other TeamCity Images +* [TeamCity Server](https://hub.docker.com/r/jetbrains/teamcity-server/) +* [Build Agent](https://hub.docker.com/r/jetbrains/teamcity-agent/) diff --git a/linux/ecosystem/nodejs/outdated/node14/docker-compose.yml b/linux/ecosystem/nodejs/node14/docker-compose.yml similarity index 100% rename from linux/ecosystem/nodejs/outdated/node14/docker-compose.yml rename to linux/ecosystem/nodejs/node14/docker-compose.yml diff --git a/linux/ecosystem/nodejs/node15/Dockerfile b/linux/ecosystem/nodejs/node15/Dockerfile new file mode 100644 index 000000000..3fb1c0763 --- /dev/null +++ b/linux/ecosystem/nodejs/node15/Dockerfile @@ -0,0 +1,47 @@ +FROM epicmorg/debian:bookworm +LABEL maintainer="EpicMorg DevTeam, developer@epicm.org" + +ARG DEBIAN_FRONTEND=noninteractive + +ARG K_NODE_MAJOR_VERSION=15 +ARG K_NODE_VERSION=${K_NODE_MAJOR_VERSION}.14.0 +ARG K_NODE_URL=https://nodejs.org/dist/v${K_NODE_VERSION}/node-v${K_NODE_VERSION}-linux-x64.tar.gz +ARG K_NODE_HEADERS_URL=https://nodejs.org/dist/v${K_NODE_VERSION}/node-v${K_NODE_VERSION}-headers.tar.gz + +################################################################## +# Node.js 15.x +################################################################## +RUN groupadd -g 1337 node && \ + useradd -u 1337 --gid node --shell /bin/bash --create-home node + +RUN curl --user-agent "Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Firefox/81.0" --location ${K_NODE_URL}?$(date +%s) \ + --header 'Cache-Control: no-cache, no-store' \ + --header 'Pragma: no-cache' | tar xzv --strip-components=1 --directory /usr/local/ && \ + rm -rfv /usr/local/CHANGELOG.md /usr/local/LICENSE /usr/local/README.md + +RUN curl --user-agent "Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Firefox/81.0" --location ${K_NODE_HEADERS_URL}?$(date +%s) \ + --header 'Cache-Control: no-cache, no-store' \ + --header 'Pragma: no-cache' | tar xzv --strip-components=1 --directory /usr/local/ + +#RUN npm install -g pnpm yarn +RUN npm install -g yarn + +################################################################## +# Version after install +################################################################## +RUN echo "=============================================" && \ + echo node $(node --version) && \ + echo npm $(npm --version) && \ + echo yarn $(yarn --version) && \ +# echo pnpm $(pnpm --version) && \ + echo "=============================================" + +################################################################## +# cleanup +################################################################## +RUN apt-get purge policykit-1 -y && \ +apt-get clean -y && \ +apt-get autoclean -y && \ +rm -rfv /var/lib/apt/lists/* && \ +rm -rfv /var/cache/apt/archives/*.deb && \ +rm -rfv /tmp/* diff --git a/linux/ecosystem/nodejs/node15/Makefile b/linux/ecosystem/nodejs/node15/Makefile new file mode 100644 index 000000000..9ef622aa9 --- /dev/null +++ b/linux/ecosystem/nodejs/node15/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel --progress plain + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/nodejs/node15/README.md b/linux/ecosystem/nodejs/node15/README.md new file mode 100644 index 000000000..b53fe01e8 --- /dev/null +++ b/linux/ecosystem/nodejs/node15/README.md @@ -0,0 +1,93 @@ +## TeamCity Minimal Build Agent + +[](https://confluence.jetbrains.com/display/ALL/JetBrains+on+GitHub) + +This is an official [JetBrains TeamCity](https://www.jetbrains.com/teamcity/) minimal build agent image. + + More details about tags and components are [here](https://github.com/JetBrains/teamcity-docker-images/blob/master/generated/teamcity-minimal-agent.md). + +The [TeamCity build agent](https://www.jetbrains.com/help/teamcity/build-agent.html) connects to the TeamCity server and spawns the actual build processes. +You can use the ```jetbrains/teamcity-server``` image to run a TeamCity server. + +This minimal image adds just a TeamCity agent without any tools like VCS clients, etc. It is suitable for simple builds and can serve as a base for your custom images. For Java or .NET development we recommend using the default build agent image [jetbrains/teamcity-agent](https://hub.docker.com/r/jetbrains/teamcity-agent/). + +## How to Use This Image + +Pull the TeamCity minimal image from the Docker Hub Repository: + +``` +jetbrains/teamcity-minimal-agent +``` +  +and use the following command to start a container with TeamCity agent running inside +a Linux container: + +``` +docker run -it -e SERVER_URL="" \ + -v :/data/teamcity_agent/conf \ + jetbrains/teamcity-minimal-agent +``` +  +or a Windows container: +``` +docker run -it -e SERVER_URL="" + -v :C:/BuildAgent/conf + jetbrains/teamcity-minimal-agent +``` +where `` is the full URL for TeamCity server, accessible by the agent. Note that `localhost` will not generally not work as it will refer to the `localhost` inside the container. +`` is the host machine directory to serve as the TeamCity agent config directory. We recommend providing this binding in order to persist the agent configuration, e.g. authorization on the server. Note that you should map a different folder for every new agent you create. + +Since version 2020.1, TeamCity agent Docker images __run under a non-root user__. Refer to our [upgrade notes](https://www.jetbrains.com/help/teamcity/upgrade-notes.html#UpgradeNotes-AgentDockerimagesrunundernon-rootuser) for information on possible affected use cases. + +When you run the agent for the first time, you should authorize it via the TeamCity server UI: go to the **Unauthorized Agents** page in your browser. See [more details](https://www.jetbrains.com/help/teamcity/build-agent.html). + +All information about agent authorization is stored in agent's configuration folder. If you stop the container with the agent and then start a new one with the same config folder, the agent's name and authorization state will be preserved. + +TeamCity agent does not need manual upgrade: it will upgrade itself automatically on connecting to an upgraded server. + +### Agent Image Environment Variables + +- **SERVER_URL** - URL of the TeamCity server agent will connect to +- **AGENT_NAME** - (optional) Name of the agent in TeamCity UI, autogenerated if omitted +- **AGENT_TOKEN** - (optional) Agent authorization token, if unset, the agent should be [authorized](https://www.jetbrains.com/help/teamcity/build-agent.html#BuildAgent-BuildAgentStatus) via TeamCity UI. +- **OWN_ADDRESS** - (optional, linux only) IP address build agent binds to, autodetected +- **OWN_PORT** - (optional, linux only) Port build agent binds to, 9090 by default + +### Windows Containers Limitations + +The details on the known problems in Windows containers are available in the [TeamCity documentation](https://www.jetbrains.com/help/teamcity/known-issues.html#KnownIssues-WindowsDockerContainers). + +## Customization + +You can customize the image via the usual Docker procedure: + +1. Run the image +``` +docker run -it -e SERVER_URL="" \ + -v :/data/teamcity_agent/conf \ + --name="my-customized-agent" \ + jetbrains/teamcity-minimal-agent \ +``` +2. Enter the container +``` +docker exec -it my-customized-agent bash +``` + +3. Change whatever you need +4. Exit and [create a new image](https://docs.docker.com/engine/reference/commandline/commit/) from the container +``` +docker commit my-customized-agent +``` + +## License + +The image is available under the [TeamCity license](https://www.jetbrains.com/teamcity/buy/license.html). +TeamCity is free for perpetual use with the limitation of 100 build configurations (jobs) and 3 agents. [Licensing details](https://www.jetbrains.com/help/teamcity/licensing-policy.html). + +## Feedback + +Report issues of suggestions to the official TeamCity [issue tracker](https://youtrack.jetbrains.com/issues/TW). + +## Other TeamCity Images +* [TeamCity Server](https://hub.docker.com/r/jetbrains/teamcity-server/) +* [Build Agent](https://hub.docker.com/r/jetbrains/teamcity-agent/) diff --git a/linux/ecosystem/nodejs/outdated/node15/docker-compose.yml b/linux/ecosystem/nodejs/node15/docker-compose.yml similarity index 100% rename from linux/ecosystem/nodejs/outdated/node15/docker-compose.yml rename to linux/ecosystem/nodejs/node15/docker-compose.yml diff --git a/linux/ecosystem/nodejs/node16/Dockerfile b/linux/ecosystem/nodejs/node16/Dockerfile new file mode 100644 index 000000000..50bfa5505 --- /dev/null +++ b/linux/ecosystem/nodejs/node16/Dockerfile @@ -0,0 +1,47 @@ +FROM epicmorg/debian:bookworm +LABEL maintainer="EpicMorg DevTeam, developer@epicm.org" + +ARG DEBIAN_FRONTEND=noninteractive + +ARG K_NODE_MAJOR_VERSION=16 +ARG K_NODE_VERSION=${K_NODE_MAJOR_VERSION}.20.2 +ARG K_NODE_URL=https://nodejs.org/dist/v${K_NODE_VERSION}/node-v${K_NODE_VERSION}-linux-x64.tar.gz +ARG K_NODE_HEADERS_URL=https://nodejs.org/dist/v${K_NODE_VERSION}/node-v${K_NODE_VERSION}-headers.tar.gz + +################################################################## +# Node.js 16.x +################################################################## +RUN groupadd -g 1337 node && \ + useradd -u 1337 --gid node --shell /bin/bash --create-home node + +RUN curl --user-agent "Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Firefox/81.0" --location ${K_NODE_URL}?$(date +%s) \ + --header 'Cache-Control: no-cache, no-store' \ + --header 'Pragma: no-cache' | tar xzv --strip-components=1 --directory /usr/local/ && \ + rm -rfv /usr/local/CHANGELOG.md /usr/local/LICENSE /usr/local/README.md + +RUN curl --user-agent "Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Firefox/81.0" --location ${K_NODE_HEADERS_URL}?$(date +%s) \ + --header 'Cache-Control: no-cache, no-store' \ + --header 'Pragma: no-cache' | tar xzv --strip-components=1 --directory /usr/local/ + +#RUN npm install -g pnpm yarn +RUN npm install -g yarn + +################################################################## +# Version after install +################################################################## +RUN echo "=============================================" && \ + echo node $(node --version) && \ + echo npm $(npm --version) && \ + echo yarn $(yarn --version) && \ +# echo pnpm $(pnpm --version) && \ + echo "=============================================" + +################################################################## +# cleanup +################################################################## +RUN apt-get purge policykit-1 -y && \ +apt-get clean -y && \ +apt-get autoclean -y && \ +rm -rfv /var/lib/apt/lists/* && \ +rm -rfv /var/cache/apt/archives/*.deb && \ +rm -rfv /tmp/* diff --git a/linux/ecosystem/nodejs/node16/Makefile b/linux/ecosystem/nodejs/node16/Makefile new file mode 100644 index 000000000..9ef622aa9 --- /dev/null +++ b/linux/ecosystem/nodejs/node16/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel --progress plain + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/nodejs/node16/README.md b/linux/ecosystem/nodejs/node16/README.md new file mode 100644 index 000000000..b53fe01e8 --- /dev/null +++ b/linux/ecosystem/nodejs/node16/README.md @@ -0,0 +1,93 @@ +## TeamCity Minimal Build Agent + +[](https://confluence.jetbrains.com/display/ALL/JetBrains+on+GitHub) + +This is an official [JetBrains TeamCity](https://www.jetbrains.com/teamcity/) minimal build agent image. + + More details about tags and components are [here](https://github.com/JetBrains/teamcity-docker-images/blob/master/generated/teamcity-minimal-agent.md). + +The [TeamCity build agent](https://www.jetbrains.com/help/teamcity/build-agent.html) connects to the TeamCity server and spawns the actual build processes. +You can use the ```jetbrains/teamcity-server``` image to run a TeamCity server. + +This minimal image adds just a TeamCity agent without any tools like VCS clients, etc. It is suitable for simple builds and can serve as a base for your custom images. For Java or .NET development we recommend using the default build agent image [jetbrains/teamcity-agent](https://hub.docker.com/r/jetbrains/teamcity-agent/). + +## How to Use This Image + +Pull the TeamCity minimal image from the Docker Hub Repository: + +``` +jetbrains/teamcity-minimal-agent +``` +  +and use the following command to start a container with TeamCity agent running inside +a Linux container: + +``` +docker run -it -e SERVER_URL="" \ + -v :/data/teamcity_agent/conf \ + jetbrains/teamcity-minimal-agent +``` +  +or a Windows container: +``` +docker run -it -e SERVER_URL="" + -v :C:/BuildAgent/conf + jetbrains/teamcity-minimal-agent +``` +where `` is the full URL for TeamCity server, accessible by the agent. Note that `localhost` will not generally not work as it will refer to the `localhost` inside the container. +`` is the host machine directory to serve as the TeamCity agent config directory. We recommend providing this binding in order to persist the agent configuration, e.g. authorization on the server. Note that you should map a different folder for every new agent you create. + +Since version 2020.1, TeamCity agent Docker images __run under a non-root user__. Refer to our [upgrade notes](https://www.jetbrains.com/help/teamcity/upgrade-notes.html#UpgradeNotes-AgentDockerimagesrunundernon-rootuser) for information on possible affected use cases. + +When you run the agent for the first time, you should authorize it via the TeamCity server UI: go to the **Unauthorized Agents** page in your browser. See [more details](https://www.jetbrains.com/help/teamcity/build-agent.html). + +All information about agent authorization is stored in agent's configuration folder. If you stop the container with the agent and then start a new one with the same config folder, the agent's name and authorization state will be preserved. + +TeamCity agent does not need manual upgrade: it will upgrade itself automatically on connecting to an upgraded server. + +### Agent Image Environment Variables + +- **SERVER_URL** - URL of the TeamCity server agent will connect to +- **AGENT_NAME** - (optional) Name of the agent in TeamCity UI, autogenerated if omitted +- **AGENT_TOKEN** - (optional) Agent authorization token, if unset, the agent should be [authorized](https://www.jetbrains.com/help/teamcity/build-agent.html#BuildAgent-BuildAgentStatus) via TeamCity UI. +- **OWN_ADDRESS** - (optional, linux only) IP address build agent binds to, autodetected +- **OWN_PORT** - (optional, linux only) Port build agent binds to, 9090 by default + +### Windows Containers Limitations + +The details on the known problems in Windows containers are available in the [TeamCity documentation](https://www.jetbrains.com/help/teamcity/known-issues.html#KnownIssues-WindowsDockerContainers). + +## Customization + +You can customize the image via the usual Docker procedure: + +1. Run the image +``` +docker run -it -e SERVER_URL="" \ + -v :/data/teamcity_agent/conf \ + --name="my-customized-agent" \ + jetbrains/teamcity-minimal-agent \ +``` +2. Enter the container +``` +docker exec -it my-customized-agent bash +``` + +3. Change whatever you need +4. Exit and [create a new image](https://docs.docker.com/engine/reference/commandline/commit/) from the container +``` +docker commit my-customized-agent +``` + +## License + +The image is available under the [TeamCity license](https://www.jetbrains.com/teamcity/buy/license.html). +TeamCity is free for perpetual use with the limitation of 100 build configurations (jobs) and 3 agents. [Licensing details](https://www.jetbrains.com/help/teamcity/licensing-policy.html). + +## Feedback + +Report issues of suggestions to the official TeamCity [issue tracker](https://youtrack.jetbrains.com/issues/TW). + +## Other TeamCity Images +* [TeamCity Server](https://hub.docker.com/r/jetbrains/teamcity-server/) +* [Build Agent](https://hub.docker.com/r/jetbrains/teamcity-agent/) diff --git a/linux/ecosystem/nodejs/outdated/node16/docker-compose.yml b/linux/ecosystem/nodejs/node16/docker-compose.yml similarity index 100% rename from linux/ecosystem/nodejs/outdated/node16/docker-compose.yml rename to linux/ecosystem/nodejs/node16/docker-compose.yml diff --git a/linux/ecosystem/nodejs/node17/Dockerfile b/linux/ecosystem/nodejs/node17/Dockerfile new file mode 100644 index 000000000..1d19cd3ba --- /dev/null +++ b/linux/ecosystem/nodejs/node17/Dockerfile @@ -0,0 +1,47 @@ +FROM epicmorg/debian:bookworm +LABEL maintainer="EpicMorg DevTeam, developer@epicm.org" + +ARG DEBIAN_FRONTEND=noninteractive + +ARG K_NODE_MAJOR_VERSION=17 +ARG K_NODE_VERSION=${K_NODE_MAJOR_VERSION}.9.1 +ARG K_NODE_URL=https://nodejs.org/dist/v${K_NODE_VERSION}/node-v${K_NODE_VERSION}-linux-x64.tar.gz +ARG K_NODE_HEADERS_URL=https://nodejs.org/dist/v${K_NODE_VERSION}/node-v${K_NODE_VERSION}-headers.tar.gz + +################################################################## +# Node.js 17.x +################################################################## +RUN groupadd -g 1337 node && \ + useradd -u 1337 --gid node --shell /bin/bash --create-home node + +RUN curl --user-agent "Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Firefox/81.0" --location ${K_NODE_URL}?$(date +%s) \ + --header 'Cache-Control: no-cache, no-store' \ + --header 'Pragma: no-cache' | tar xzv --strip-components=1 --directory /usr/local/ && \ + rm -rfv /usr/local/CHANGELOG.md /usr/local/LICENSE /usr/local/README.md + +RUN curl --user-agent "Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Firefox/81.0" --location ${K_NODE_HEADERS_URL}?$(date +%s) \ + --header 'Cache-Control: no-cache, no-store' \ + --header 'Pragma: no-cache' | tar xzv --strip-components=1 --directory /usr/local/ + +#RUN npm install -g pnpm yarn +RUN npm install -g yarn + +################################################################## +# Version after install +################################################################## +RUN echo "=============================================" && \ + echo node $(node --version) && \ + echo npm $(npm --version) && \ + echo yarn $(yarn --version) && \ +# echo pnpm $(pnpm --version) && \ + echo "=============================================" + +################################################################## +# cleanup +################################################################## +RUN apt-get purge policykit-1 -y && \ +apt-get clean -y && \ +apt-get autoclean -y && \ +rm -rfv /var/lib/apt/lists/* && \ +rm -rfv /var/cache/apt/archives/*.deb && \ +rm -rfv /tmp/* diff --git a/linux/ecosystem/nodejs/node17/Makefile b/linux/ecosystem/nodejs/node17/Makefile new file mode 100644 index 000000000..9ef622aa9 --- /dev/null +++ b/linux/ecosystem/nodejs/node17/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel --progress plain + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/nodejs/node17/README.md b/linux/ecosystem/nodejs/node17/README.md new file mode 100644 index 000000000..b53fe01e8 --- /dev/null +++ b/linux/ecosystem/nodejs/node17/README.md @@ -0,0 +1,93 @@ +## TeamCity Minimal Build Agent + +[](https://confluence.jetbrains.com/display/ALL/JetBrains+on+GitHub) + +This is an official [JetBrains TeamCity](https://www.jetbrains.com/teamcity/) minimal build agent image. + + More details about tags and components are [here](https://github.com/JetBrains/teamcity-docker-images/blob/master/generated/teamcity-minimal-agent.md). + +The [TeamCity build agent](https://www.jetbrains.com/help/teamcity/build-agent.html) connects to the TeamCity server and spawns the actual build processes. +You can use the ```jetbrains/teamcity-server``` image to run a TeamCity server. + +This minimal image adds just a TeamCity agent without any tools like VCS clients, etc. It is suitable for simple builds and can serve as a base for your custom images. For Java or .NET development we recommend using the default build agent image [jetbrains/teamcity-agent](https://hub.docker.com/r/jetbrains/teamcity-agent/). + +## How to Use This Image + +Pull the TeamCity minimal image from the Docker Hub Repository: + +``` +jetbrains/teamcity-minimal-agent +``` +  +and use the following command to start a container with TeamCity agent running inside +a Linux container: + +``` +docker run -it -e SERVER_URL="" \ + -v :/data/teamcity_agent/conf \ + jetbrains/teamcity-minimal-agent +``` +  +or a Windows container: +``` +docker run -it -e SERVER_URL="" + -v :C:/BuildAgent/conf + jetbrains/teamcity-minimal-agent +``` +where `` is the full URL for TeamCity server, accessible by the agent. Note that `localhost` will not generally not work as it will refer to the `localhost` inside the container. +`` is the host machine directory to serve as the TeamCity agent config directory. We recommend providing this binding in order to persist the agent configuration, e.g. authorization on the server. Note that you should map a different folder for every new agent you create. + +Since version 2020.1, TeamCity agent Docker images __run under a non-root user__. Refer to our [upgrade notes](https://www.jetbrains.com/help/teamcity/upgrade-notes.html#UpgradeNotes-AgentDockerimagesrunundernon-rootuser) for information on possible affected use cases. + +When you run the agent for the first time, you should authorize it via the TeamCity server UI: go to the **Unauthorized Agents** page in your browser. See [more details](https://www.jetbrains.com/help/teamcity/build-agent.html). + +All information about agent authorization is stored in agent's configuration folder. If you stop the container with the agent and then start a new one with the same config folder, the agent's name and authorization state will be preserved. + +TeamCity agent does not need manual upgrade: it will upgrade itself automatically on connecting to an upgraded server. + +### Agent Image Environment Variables + +- **SERVER_URL** - URL of the TeamCity server agent will connect to +- **AGENT_NAME** - (optional) Name of the agent in TeamCity UI, autogenerated if omitted +- **AGENT_TOKEN** - (optional) Agent authorization token, if unset, the agent should be [authorized](https://www.jetbrains.com/help/teamcity/build-agent.html#BuildAgent-BuildAgentStatus) via TeamCity UI. +- **OWN_ADDRESS** - (optional, linux only) IP address build agent binds to, autodetected +- **OWN_PORT** - (optional, linux only) Port build agent binds to, 9090 by default + +### Windows Containers Limitations + +The details on the known problems in Windows containers are available in the [TeamCity documentation](https://www.jetbrains.com/help/teamcity/known-issues.html#KnownIssues-WindowsDockerContainers). + +## Customization + +You can customize the image via the usual Docker procedure: + +1. Run the image +``` +docker run -it -e SERVER_URL="" \ + -v :/data/teamcity_agent/conf \ + --name="my-customized-agent" \ + jetbrains/teamcity-minimal-agent \ +``` +2. Enter the container +``` +docker exec -it my-customized-agent bash +``` + +3. Change whatever you need +4. Exit and [create a new image](https://docs.docker.com/engine/reference/commandline/commit/) from the container +``` +docker commit my-customized-agent +``` + +## License + +The image is available under the [TeamCity license](https://www.jetbrains.com/teamcity/buy/license.html). +TeamCity is free for perpetual use with the limitation of 100 build configurations (jobs) and 3 agents. [Licensing details](https://www.jetbrains.com/help/teamcity/licensing-policy.html). + +## Feedback + +Report issues of suggestions to the official TeamCity [issue tracker](https://youtrack.jetbrains.com/issues/TW). + +## Other TeamCity Images +* [TeamCity Server](https://hub.docker.com/r/jetbrains/teamcity-server/) +* [Build Agent](https://hub.docker.com/r/jetbrains/teamcity-agent/) diff --git a/linux/ecosystem/nodejs/outdated/node17/docker-compose.yml b/linux/ecosystem/nodejs/node17/docker-compose.yml similarity index 100% rename from linux/ecosystem/nodejs/outdated/node17/docker-compose.yml rename to linux/ecosystem/nodejs/node17/docker-compose.yml diff --git a/linux/ecosystem/nodejs/node18/Dockerfile b/linux/ecosystem/nodejs/node18/Dockerfile new file mode 100644 index 000000000..fc21487aa --- /dev/null +++ b/linux/ecosystem/nodejs/node18/Dockerfile @@ -0,0 +1,46 @@ +FROM epicmorg/debian:bookworm +LABEL maintainer="EpicMorg DevTeam, developer@epicm.org" + +ARG DEBIAN_FRONTEND=noninteractive + +ARG K_NODE_MAJOR_VERSION=18 +ARG K_NODE_VERSION=${K_NODE_MAJOR_VERSION}.20.3 +ARG K_NODE_URL=https://nodejs.org/dist/v${K_NODE_VERSION}/node-v${K_NODE_VERSION}-linux-x64.tar.gz +ARG K_NODE_HEADERS_URL=https://nodejs.org/dist/v${K_NODE_VERSION}/node-v${K_NODE_VERSION}-headers.tar.gz + +################################################################## +# Node.js 18.x +################################################################## +RUN groupadd -g 1337 node && \ + useradd -u 1337 --gid node --shell /bin/bash --create-home node + +RUN curl --user-agent "Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Firefox/81.0" --location ${K_NODE_URL}?$(date +%s) \ + --header 'Cache-Control: no-cache, no-store' \ + --header 'Pragma: no-cache' | tar xzv --strip-components=1 --directory /usr/local/ && \ + rm -rfv /usr/local/CHANGELOG.md /usr/local/LICENSE /usr/local/README.md + +RUN curl --user-agent "Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Firefox/81.0" --location ${K_NODE_HEADERS_URL}?$(date +%s) \ + --header 'Cache-Control: no-cache, no-store' \ + --header 'Pragma: no-cache' | tar xzv --strip-components=1 --directory /usr/local/ + +RUN npm install -g pnpm yarn + +################################################################## +# Version after install +################################################################## +RUN echo "=============================================" && \ + echo node $(node --version) && \ + echo npm $(npm --version) && \ + echo yarn $(yarn --version) && \ + echo pnpm $(pnpm --version) && \ + echo "=============================================" + +################################################################## +# cleanup +################################################################## +RUN apt-get purge policykit-1 -y && \ +apt-get clean -y && \ +apt-get autoclean -y && \ +rm -rfv /var/lib/apt/lists/* && \ +rm -rfv /var/cache/apt/archives/*.deb && \ +rm -rfv /tmp/* diff --git a/linux/ecosystem/nodejs/node18/Makefile b/linux/ecosystem/nodejs/node18/Makefile new file mode 100644 index 000000000..9ef622aa9 --- /dev/null +++ b/linux/ecosystem/nodejs/node18/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel --progress plain + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/nodejs/node18/README.md b/linux/ecosystem/nodejs/node18/README.md new file mode 100644 index 000000000..b53fe01e8 --- /dev/null +++ b/linux/ecosystem/nodejs/node18/README.md @@ -0,0 +1,93 @@ +## TeamCity Minimal Build Agent + +[](https://confluence.jetbrains.com/display/ALL/JetBrains+on+GitHub) + +This is an official [JetBrains TeamCity](https://www.jetbrains.com/teamcity/) minimal build agent image. + + More details about tags and components are [here](https://github.com/JetBrains/teamcity-docker-images/blob/master/generated/teamcity-minimal-agent.md). + +The [TeamCity build agent](https://www.jetbrains.com/help/teamcity/build-agent.html) connects to the TeamCity server and spawns the actual build processes. +You can use the ```jetbrains/teamcity-server``` image to run a TeamCity server. + +This minimal image adds just a TeamCity agent without any tools like VCS clients, etc. It is suitable for simple builds and can serve as a base for your custom images. For Java or .NET development we recommend using the default build agent image [jetbrains/teamcity-agent](https://hub.docker.com/r/jetbrains/teamcity-agent/). + +## How to Use This Image + +Pull the TeamCity minimal image from the Docker Hub Repository: + +``` +jetbrains/teamcity-minimal-agent +``` +  +and use the following command to start a container with TeamCity agent running inside +a Linux container: + +``` +docker run -it -e SERVER_URL="" \ + -v :/data/teamcity_agent/conf \ + jetbrains/teamcity-minimal-agent +``` +  +or a Windows container: +``` +docker run -it -e SERVER_URL="" + -v :C:/BuildAgent/conf + jetbrains/teamcity-minimal-agent +``` +where `` is the full URL for TeamCity server, accessible by the agent. Note that `localhost` will not generally not work as it will refer to the `localhost` inside the container. +`` is the host machine directory to serve as the TeamCity agent config directory. We recommend providing this binding in order to persist the agent configuration, e.g. authorization on the server. Note that you should map a different folder for every new agent you create. + +Since version 2020.1, TeamCity agent Docker images __run under a non-root user__. Refer to our [upgrade notes](https://www.jetbrains.com/help/teamcity/upgrade-notes.html#UpgradeNotes-AgentDockerimagesrunundernon-rootuser) for information on possible affected use cases. + +When you run the agent for the first time, you should authorize it via the TeamCity server UI: go to the **Unauthorized Agents** page in your browser. See [more details](https://www.jetbrains.com/help/teamcity/build-agent.html). + +All information about agent authorization is stored in agent's configuration folder. If you stop the container with the agent and then start a new one with the same config folder, the agent's name and authorization state will be preserved. + +TeamCity agent does not need manual upgrade: it will upgrade itself automatically on connecting to an upgraded server. + +### Agent Image Environment Variables + +- **SERVER_URL** - URL of the TeamCity server agent will connect to +- **AGENT_NAME** - (optional) Name of the agent in TeamCity UI, autogenerated if omitted +- **AGENT_TOKEN** - (optional) Agent authorization token, if unset, the agent should be [authorized](https://www.jetbrains.com/help/teamcity/build-agent.html#BuildAgent-BuildAgentStatus) via TeamCity UI. +- **OWN_ADDRESS** - (optional, linux only) IP address build agent binds to, autodetected +- **OWN_PORT** - (optional, linux only) Port build agent binds to, 9090 by default + +### Windows Containers Limitations + +The details on the known problems in Windows containers are available in the [TeamCity documentation](https://www.jetbrains.com/help/teamcity/known-issues.html#KnownIssues-WindowsDockerContainers). + +## Customization + +You can customize the image via the usual Docker procedure: + +1. Run the image +``` +docker run -it -e SERVER_URL="" \ + -v :/data/teamcity_agent/conf \ + --name="my-customized-agent" \ + jetbrains/teamcity-minimal-agent \ +``` +2. Enter the container +``` +docker exec -it my-customized-agent bash +``` + +3. Change whatever you need +4. Exit and [create a new image](https://docs.docker.com/engine/reference/commandline/commit/) from the container +``` +docker commit my-customized-agent +``` + +## License + +The image is available under the [TeamCity license](https://www.jetbrains.com/teamcity/buy/license.html). +TeamCity is free for perpetual use with the limitation of 100 build configurations (jobs) and 3 agents. [Licensing details](https://www.jetbrains.com/help/teamcity/licensing-policy.html). + +## Feedback + +Report issues of suggestions to the official TeamCity [issue tracker](https://youtrack.jetbrains.com/issues/TW). + +## Other TeamCity Images +* [TeamCity Server](https://hub.docker.com/r/jetbrains/teamcity-server/) +* [Build Agent](https://hub.docker.com/r/jetbrains/teamcity-agent/) diff --git a/linux/ecosystem/nodejs/outdated/node18/docker-compose.yml b/linux/ecosystem/nodejs/node18/docker-compose.yml similarity index 100% rename from linux/ecosystem/nodejs/outdated/node18/docker-compose.yml rename to linux/ecosystem/nodejs/node18/docker-compose.yml diff --git a/linux/ecosystem/nodejs/node19/Dockerfile b/linux/ecosystem/nodejs/node19/Dockerfile new file mode 100644 index 000000000..06a5e80fa --- /dev/null +++ b/linux/ecosystem/nodejs/node19/Dockerfile @@ -0,0 +1,46 @@ +FROM epicmorg/debian:bookworm +LABEL maintainer="EpicMorg DevTeam, developer@epicm.org" + +ARG DEBIAN_FRONTEND=noninteractive + +ARG K_NODE_MAJOR_VERSION=19 +ARG K_NODE_VERSION=${K_NODE_MAJOR_VERSION}.9.0 +ARG K_NODE_URL=https://nodejs.org/dist/v${K_NODE_VERSION}/node-v${K_NODE_VERSION}-linux-x64.tar.gz +ARG K_NODE_HEADERS_URL=https://nodejs.org/dist/v${K_NODE_VERSION}/node-v${K_NODE_VERSION}-headers.tar.gz + +################################################################## +# Node.js 19.x +################################################################## +RUN groupadd -g 1337 node && \ + useradd -u 1337 --gid node --shell /bin/bash --create-home node + +RUN curl --user-agent "Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Firefox/81.0" --location ${K_NODE_URL}?$(date +%s) \ + --header 'Cache-Control: no-cache, no-store' \ + --header 'Pragma: no-cache' | tar xzv --strip-components=1 --directory /usr/local/ && \ + rm -rfv /usr/local/CHANGELOG.md /usr/local/LICENSE /usr/local/README.md + +RUN curl --user-agent "Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Firefox/81.0" --location ${K_NODE_HEADERS_URL}?$(date +%s) \ + --header 'Cache-Control: no-cache, no-store' \ + --header 'Pragma: no-cache' | tar xzv --strip-components=1 --directory /usr/local/ + +RUN npm install -g pnpm yarn + +################################################################## +# Version after install +################################################################## +RUN echo "=============================================" && \ + echo node $(node --version) && \ + echo npm $(npm --version) && \ + echo yarn $(yarn --version) && \ + echo pnpm $(pnpm --version) && \ + echo "=============================================" + +################################################################## +# cleanup +################################################################## +RUN apt-get purge policykit-1 -y && \ +apt-get clean -y && \ +apt-get autoclean -y && \ +rm -rfv /var/lib/apt/lists/* && \ +rm -rfv /var/cache/apt/archives/*.deb && \ +rm -rfv /tmp/* diff --git a/linux/ecosystem/nodejs/node19/Makefile b/linux/ecosystem/nodejs/node19/Makefile new file mode 100644 index 000000000..9ef622aa9 --- /dev/null +++ b/linux/ecosystem/nodejs/node19/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel --progress plain + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/nodejs/node19/README.md b/linux/ecosystem/nodejs/node19/README.md new file mode 100644 index 000000000..b53fe01e8 --- /dev/null +++ b/linux/ecosystem/nodejs/node19/README.md @@ -0,0 +1,93 @@ +## TeamCity Minimal Build Agent + +[](https://confluence.jetbrains.com/display/ALL/JetBrains+on+GitHub) + +This is an official [JetBrains TeamCity](https://www.jetbrains.com/teamcity/) minimal build agent image. + + More details about tags and components are [here](https://github.com/JetBrains/teamcity-docker-images/blob/master/generated/teamcity-minimal-agent.md). + +The [TeamCity build agent](https://www.jetbrains.com/help/teamcity/build-agent.html) connects to the TeamCity server and spawns the actual build processes. +You can use the ```jetbrains/teamcity-server``` image to run a TeamCity server. + +This minimal image adds just a TeamCity agent without any tools like VCS clients, etc. It is suitable for simple builds and can serve as a base for your custom images. For Java or .NET development we recommend using the default build agent image [jetbrains/teamcity-agent](https://hub.docker.com/r/jetbrains/teamcity-agent/). + +## How to Use This Image + +Pull the TeamCity minimal image from the Docker Hub Repository: + +``` +jetbrains/teamcity-minimal-agent +``` +  +and use the following command to start a container with TeamCity agent running inside +a Linux container: + +``` +docker run -it -e SERVER_URL="" \ + -v :/data/teamcity_agent/conf \ + jetbrains/teamcity-minimal-agent +``` +  +or a Windows container: +``` +docker run -it -e SERVER_URL="" + -v :C:/BuildAgent/conf + jetbrains/teamcity-minimal-agent +``` +where `` is the full URL for TeamCity server, accessible by the agent. Note that `localhost` will not generally not work as it will refer to the `localhost` inside the container. +`` is the host machine directory to serve as the TeamCity agent config directory. We recommend providing this binding in order to persist the agent configuration, e.g. authorization on the server. Note that you should map a different folder for every new agent you create. + +Since version 2020.1, TeamCity agent Docker images __run under a non-root user__. Refer to our [upgrade notes](https://www.jetbrains.com/help/teamcity/upgrade-notes.html#UpgradeNotes-AgentDockerimagesrunundernon-rootuser) for information on possible affected use cases. + +When you run the agent for the first time, you should authorize it via the TeamCity server UI: go to the **Unauthorized Agents** page in your browser. See [more details](https://www.jetbrains.com/help/teamcity/build-agent.html). + +All information about agent authorization is stored in agent's configuration folder. If you stop the container with the agent and then start a new one with the same config folder, the agent's name and authorization state will be preserved. + +TeamCity agent does not need manual upgrade: it will upgrade itself automatically on connecting to an upgraded server. + +### Agent Image Environment Variables + +- **SERVER_URL** - URL of the TeamCity server agent will connect to +- **AGENT_NAME** - (optional) Name of the agent in TeamCity UI, autogenerated if omitted +- **AGENT_TOKEN** - (optional) Agent authorization token, if unset, the agent should be [authorized](https://www.jetbrains.com/help/teamcity/build-agent.html#BuildAgent-BuildAgentStatus) via TeamCity UI. +- **OWN_ADDRESS** - (optional, linux only) IP address build agent binds to, autodetected +- **OWN_PORT** - (optional, linux only) Port build agent binds to, 9090 by default + +### Windows Containers Limitations + +The details on the known problems in Windows containers are available in the [TeamCity documentation](https://www.jetbrains.com/help/teamcity/known-issues.html#KnownIssues-WindowsDockerContainers). + +## Customization + +You can customize the image via the usual Docker procedure: + +1. Run the image +``` +docker run -it -e SERVER_URL="" \ + -v :/data/teamcity_agent/conf \ + --name="my-customized-agent" \ + jetbrains/teamcity-minimal-agent \ +``` +2. Enter the container +``` +docker exec -it my-customized-agent bash +``` + +3. Change whatever you need +4. Exit and [create a new image](https://docs.docker.com/engine/reference/commandline/commit/) from the container +``` +docker commit my-customized-agent +``` + +## License + +The image is available under the [TeamCity license](https://www.jetbrains.com/teamcity/buy/license.html). +TeamCity is free for perpetual use with the limitation of 100 build configurations (jobs) and 3 agents. [Licensing details](https://www.jetbrains.com/help/teamcity/licensing-policy.html). + +## Feedback + +Report issues of suggestions to the official TeamCity [issue tracker](https://youtrack.jetbrains.com/issues/TW). + +## Other TeamCity Images +* [TeamCity Server](https://hub.docker.com/r/jetbrains/teamcity-server/) +* [Build Agent](https://hub.docker.com/r/jetbrains/teamcity-agent/) diff --git a/linux/ecosystem/nodejs/outdated/node19/docker-compose.yml b/linux/ecosystem/nodejs/node19/docker-compose.yml similarity index 100% rename from linux/ecosystem/nodejs/outdated/node19/docker-compose.yml rename to linux/ecosystem/nodejs/node19/docker-compose.yml diff --git a/linux/ecosystem/nodejs/node20/Dockerfile b/linux/ecosystem/nodejs/node20/Dockerfile index f7294a1fc..3d1de2104 100644 --- a/linux/ecosystem/nodejs/node20/Dockerfile +++ b/linux/ecosystem/nodejs/node20/Dockerfile @@ -1,27 +1,33 @@ FROM epicmorg/debian:bookworm LABEL maintainer="EpicMorg DevTeam, developer@epicm.org" + ARG DEBIAN_FRONTEND=noninteractive +ARG K_NODE_MAJOR_VERSION=20 +ARG K_NODE_VERSION=${K_NODE_MAJOR_VERSION}.15.0 +ARG K_NODE_URL=https://nodejs.org/dist/v${K_NODE_VERSION}/node-v${K_NODE_VERSION}-linux-x64.tar.gz +ARG K_NODE_HEADERS_URL=https://nodejs.org/dist/v${K_NODE_VERSION}/node-v${K_NODE_VERSION}-headers.tar.gz + ################################################################## # Node.js 20.x ################################################################## -RUN groupadd node && \ - useradd --gid node --shell /bin/bash --create-home node +RUN groupadd -g 1337 node && \ + useradd -u 1337 --gid node --shell /bin/bash --create-home node -ENV NODE_MAJOR=20 +RUN curl --user-agent "Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Firefox/81.0" --location ${K_NODE_URL}?$(date +%s) \ + --header 'Cache-Control: no-cache, no-store' \ + --header 'Pragma: no-cache' | tar xzv --strip-components=1 --directory /usr/local/ && \ + rm -rfv /usr/local/CHANGELOG.md /usr/local/LICENSE /usr/local/README.md -RUN curl -fsSL https://deb.nodesource.com/gpgkey/nodesource-repo.gpg.key | sudo gpg --dearmor -o /etc/apt/keyrings/nodesource.gpg && \ - echo "deb [signed-by=/etc/apt/keyrings/nodesource.gpg] https://deb.nodesource.com/node_$NODE_MAJOR.x nodistro main" | sudo tee /etc/apt/sources.list.d/nodesource.list && \ - curl -fsSL https://dl.yarnpkg.com/debian/pubkey.gpg | sudo gpg --dearmor -o /etc/apt/keyrings/yarnpkg.gpg && \ - echo "deb [signed-by=/etc/apt/keyrings/yarnpkg.gpg] https://nightly.yarnpkg.com/debian/ nightly main" > /etc/apt/sources.list.d/yarn.list && \ - apt-get clean && apt-get autoclean && \ - apt-get update && \ - apt-get install -y nodejs yarn && \ - npm install -g pnpm +RUN curl --user-agent "Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Firefox/81.0" --location ${K_NODE_HEADERS_URL}?$(date +%s) \ + --header 'Cache-Control: no-cache, no-store' \ + --header 'Pragma: no-cache' | tar xzv --strip-components=1 --directory /usr/local/ -#RUN curl -L https://www.npmjs.com/install.sh | bash && \ -# npm install -g npm +RUN npm install -g pnpm yarn +################################################################## +# Version after install +################################################################## RUN echo "=============================================" && \ echo node $(node --version) && \ echo npm $(npm --version) && \ @@ -30,11 +36,11 @@ RUN echo "=============================================" && \ echo "=============================================" ################################################################## -# cleaninig up +# cleanup ################################################################## -RUN apt clean -y && \ - apt-get clean all && \ - apt autoclean -y && \ - rm -rfv /var/lib/apt/lists/* && \ - rm -rfv /var/cache/apt/archives/*.deb && \ - rm -rfv /tmp/* +RUN apt-get purge policykit-1 -y && \ +apt-get clean -y && \ +apt-get autoclean -y && \ +rm -rfv /var/lib/apt/lists/* && \ +rm -rfv /var/cache/apt/archives/*.deb && \ +rm -rfv /tmp/* diff --git a/linux/ecosystem/nodejs/node21/Dockerfile b/linux/ecosystem/nodejs/node21/Dockerfile index dded4114a..162ce4b5a 100644 --- a/linux/ecosystem/nodejs/node21/Dockerfile +++ b/linux/ecosystem/nodejs/node21/Dockerfile @@ -1,27 +1,33 @@ FROM epicmorg/debian:bookworm LABEL maintainer="EpicMorg DevTeam, developer@epicm.org" + ARG DEBIAN_FRONTEND=noninteractive +ARG K_NODE_MAJOR_VERSION=21 +ARG K_NODE_VERSION=${K_NODE_MAJOR_VERSION}.7.3 +ARG K_NODE_URL=https://nodejs.org/dist/v${K_NODE_VERSION}/node-v${K_NODE_VERSION}-linux-x64.tar.gz +ARG K_NODE_HEADERS_URL=https://nodejs.org/dist/v${K_NODE_VERSION}/node-v${K_NODE_VERSION}-headers.tar.gz + ################################################################## # Node.js 21.x ################################################################## -RUN groupadd node && \ - useradd --gid node --shell /bin/bash --create-home node +RUN groupadd -g 1337 node && \ + useradd -u 1337 --gid node --shell /bin/bash --create-home node -ENV NODE_MAJOR=21 +RUN curl --user-agent "Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Firefox/81.0" --location ${K_NODE_URL}?$(date +%s) \ + --header 'Cache-Control: no-cache, no-store' \ + --header 'Pragma: no-cache' | tar xzv --strip-components=1 --directory /usr/local/ && \ + rm -rfv /usr/local/CHANGELOG.md /usr/local/LICENSE /usr/local/README.md -RUN curl -fsSL https://deb.nodesource.com/gpgkey/nodesource-repo.gpg.key | sudo gpg --dearmor -o /etc/apt/keyrings/nodesource.gpg && \ - echo "deb [signed-by=/etc/apt/keyrings/nodesource.gpg] https://deb.nodesource.com/node_$NODE_MAJOR.x nodistro main" | sudo tee /etc/apt/sources.list.d/nodesource.list && \ - curl -fsSL https://dl.yarnpkg.com/debian/pubkey.gpg | sudo gpg --dearmor -o /etc/apt/keyrings/yarnpkg.gpg && \ - echo "deb [signed-by=/etc/apt/keyrings/yarnpkg.gpg] https://nightly.yarnpkg.com/debian/ nightly main" > /etc/apt/sources.list.d/yarn.list && \ - apt-get clean && apt-get autoclean && \ - apt-get update && \ - apt-get install -y nodejs yarn && \ - npm install -g pnpm +RUN curl --user-agent "Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Firefox/81.0" --location ${K_NODE_HEADERS_URL}?$(date +%s) \ + --header 'Cache-Control: no-cache, no-store' \ + --header 'Pragma: no-cache' | tar xzv --strip-components=1 --directory /usr/local/ -#RUN curl -L https://www.npmjs.com/install.sh | bash && \ -# npm install -g npm +RUN npm install -g pnpm yarn +################################################################## +# Version after install +################################################################## RUN echo "=============================================" && \ echo node $(node --version) && \ echo npm $(npm --version) && \ @@ -30,11 +36,11 @@ RUN echo "=============================================" && \ echo "=============================================" ################################################################## -# cleaninig up +# cleanup ################################################################## -RUN apt clean -y && \ - apt-get clean all && \ - apt autoclean -y && \ - rm -rfv /var/lib/apt/lists/* && \ - rm -rfv /var/cache/apt/archives/*.deb && \ - rm -rfv /tmp/* +RUN apt-get purge policykit-1 -y && \ +apt-get clean -y && \ +apt-get autoclean -y && \ +rm -rfv /var/lib/apt/lists/* && \ +rm -rfv /var/cache/apt/archives/*.deb && \ +rm -rfv /tmp/* diff --git a/linux/ecosystem/nodejs/node22/Dockerfile b/linux/ecosystem/nodejs/node22/Dockerfile new file mode 100644 index 000000000..28bad0784 --- /dev/null +++ b/linux/ecosystem/nodejs/node22/Dockerfile @@ -0,0 +1,46 @@ +FROM epicmorg/debian:bookworm +LABEL maintainer="EpicMorg DevTeam, developer@epicm.org" + +ARG DEBIAN_FRONTEND=noninteractive + +ARG K_NODE_MAJOR_VERSION=22 +ARG K_NODE_VERSION=${K_NODE_MAJOR_VERSION}.3.0 +ARG K_NODE_URL=https://nodejs.org/dist/v${K_NODE_VERSION}/node-v${K_NODE_VERSION}-linux-x64.tar.gz +ARG K_NODE_HEADERS_URL=https://nodejs.org/dist/v${K_NODE_VERSION}/node-v${K_NODE_VERSION}-headers.tar.gz + +################################################################## +# Node.js 22.x +################################################################## +RUN groupadd -g 1337 node && \ + useradd -u 1337 --gid node --shell /bin/bash --create-home node + +RUN curl --user-agent "Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Firefox/81.0" --location ${K_NODE_URL}?$(date +%s) \ + --header 'Cache-Control: no-cache, no-store' \ + --header 'Pragma: no-cache' | tar xzv --strip-components=1 --directory /usr/local/ && \ + rm -rfv /usr/local/CHANGELOG.md /usr/local/LICENSE /usr/local/README.md + +RUN curl --user-agent "Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Firefox/81.0" --location ${K_NODE_HEADERS_URL}?$(date +%s) \ + --header 'Cache-Control: no-cache, no-store' \ + --header 'Pragma: no-cache' | tar xzv --strip-components=1 --directory /usr/local/ + +RUN npm install -g pnpm yarn + +################################################################## +# Version after install +################################################################## +RUN echo "=============================================" && \ + echo node $(node --version) && \ + echo npm $(npm --version) && \ + echo yarn $(yarn --version) && \ + echo pnpm $(pnpm --version) && \ + echo "=============================================" + +################################################################## +# cleanup +################################################################## +RUN apt-get purge policykit-1 -y && \ +apt-get clean -y && \ +apt-get autoclean -y && \ +rm -rfv /var/lib/apt/lists/* && \ +rm -rfv /var/cache/apt/archives/*.deb && \ +rm -rfv /tmp/* diff --git a/linux/ecosystem/nodejs/node22/Makefile b/linux/ecosystem/nodejs/node22/Makefile new file mode 100644 index 000000000..9ef622aa9 --- /dev/null +++ b/linux/ecosystem/nodejs/node22/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel --progress plain + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/nodejs/node22/README.md b/linux/ecosystem/nodejs/node22/README.md new file mode 100644 index 000000000..b53fe01e8 --- /dev/null +++ b/linux/ecosystem/nodejs/node22/README.md @@ -0,0 +1,93 @@ +## TeamCity Minimal Build Agent + +[](https://confluence.jetbrains.com/display/ALL/JetBrains+on+GitHub) + +This is an official [JetBrains TeamCity](https://www.jetbrains.com/teamcity/) minimal build agent image. + + More details about tags and components are [here](https://github.com/JetBrains/teamcity-docker-images/blob/master/generated/teamcity-minimal-agent.md). + +The [TeamCity build agent](https://www.jetbrains.com/help/teamcity/build-agent.html) connects to the TeamCity server and spawns the actual build processes. +You can use the ```jetbrains/teamcity-server``` image to run a TeamCity server. + +This minimal image adds just a TeamCity agent without any tools like VCS clients, etc. It is suitable for simple builds and can serve as a base for your custom images. For Java or .NET development we recommend using the default build agent image [jetbrains/teamcity-agent](https://hub.docker.com/r/jetbrains/teamcity-agent/). + +## How to Use This Image + +Pull the TeamCity minimal image from the Docker Hub Repository: + +``` +jetbrains/teamcity-minimal-agent +``` +  +and use the following command to start a container with TeamCity agent running inside +a Linux container: + +``` +docker run -it -e SERVER_URL="" \ + -v :/data/teamcity_agent/conf \ + jetbrains/teamcity-minimal-agent +``` +  +or a Windows container: +``` +docker run -it -e SERVER_URL="" + -v :C:/BuildAgent/conf + jetbrains/teamcity-minimal-agent +``` +where `` is the full URL for TeamCity server, accessible by the agent. Note that `localhost` will not generally not work as it will refer to the `localhost` inside the container. +`` is the host machine directory to serve as the TeamCity agent config directory. We recommend providing this binding in order to persist the agent configuration, e.g. authorization on the server. Note that you should map a different folder for every new agent you create. + +Since version 2020.1, TeamCity agent Docker images __run under a non-root user__. Refer to our [upgrade notes](https://www.jetbrains.com/help/teamcity/upgrade-notes.html#UpgradeNotes-AgentDockerimagesrunundernon-rootuser) for information on possible affected use cases. + +When you run the agent for the first time, you should authorize it via the TeamCity server UI: go to the **Unauthorized Agents** page in your browser. See [more details](https://www.jetbrains.com/help/teamcity/build-agent.html). + +All information about agent authorization is stored in agent's configuration folder. If you stop the container with the agent and then start a new one with the same config folder, the agent's name and authorization state will be preserved. + +TeamCity agent does not need manual upgrade: it will upgrade itself automatically on connecting to an upgraded server. + +### Agent Image Environment Variables + +- **SERVER_URL** - URL of the TeamCity server agent will connect to +- **AGENT_NAME** - (optional) Name of the agent in TeamCity UI, autogenerated if omitted +- **AGENT_TOKEN** - (optional) Agent authorization token, if unset, the agent should be [authorized](https://www.jetbrains.com/help/teamcity/build-agent.html#BuildAgent-BuildAgentStatus) via TeamCity UI. +- **OWN_ADDRESS** - (optional, linux only) IP address build agent binds to, autodetected +- **OWN_PORT** - (optional, linux only) Port build agent binds to, 9090 by default + +### Windows Containers Limitations + +The details on the known problems in Windows containers are available in the [TeamCity documentation](https://www.jetbrains.com/help/teamcity/known-issues.html#KnownIssues-WindowsDockerContainers). + +## Customization + +You can customize the image via the usual Docker procedure: + +1. Run the image +``` +docker run -it -e SERVER_URL="" \ + -v :/data/teamcity_agent/conf \ + --name="my-customized-agent" \ + jetbrains/teamcity-minimal-agent \ +``` +2. Enter the container +``` +docker exec -it my-customized-agent bash +``` + +3. Change whatever you need +4. Exit and [create a new image](https://docs.docker.com/engine/reference/commandline/commit/) from the container +``` +docker commit my-customized-agent +``` + +## License + +The image is available under the [TeamCity license](https://www.jetbrains.com/teamcity/buy/license.html). +TeamCity is free for perpetual use with the limitation of 100 build configurations (jobs) and 3 agents. [Licensing details](https://www.jetbrains.com/help/teamcity/licensing-policy.html). + +## Feedback + +Report issues of suggestions to the official TeamCity [issue tracker](https://youtrack.jetbrains.com/issues/TW). + +## Other TeamCity Images +* [TeamCity Server](https://hub.docker.com/r/jetbrains/teamcity-server/) +* [Build Agent](https://hub.docker.com/r/jetbrains/teamcity-agent/) diff --git a/linux/ecosystem/nodejs/node22/docker-compose.yml b/linux/ecosystem/nodejs/node22/docker-compose.yml new file mode 100644 index 000000000..3240818e7 --- /dev/null +++ b/linux/ecosystem/nodejs/node22/docker-compose.yml @@ -0,0 +1,6 @@ +version: '3' +services: + app: + image: "epicmorg/nodejs:node22" + build: + context: . diff --git a/linux/ecosystem/nodejs/node4/Dockerfile b/linux/ecosystem/nodejs/node4/Dockerfile new file mode 100644 index 000000000..c029b6e30 --- /dev/null +++ b/linux/ecosystem/nodejs/node4/Dockerfile @@ -0,0 +1,47 @@ +FROM epicmorg/debian:bookworm +LABEL maintainer="EpicMorg DevTeam, developer@epicm.org" + +ARG DEBIAN_FRONTEND=noninteractive + +ARG K_NODE_MAJOR_VERSION=4 +ARG K_NODE_VERSION=${K_NODE_MAJOR_VERSION}.9.1 +ARG K_NODE_URL=https://nodejs.org/dist/v${K_NODE_VERSION}/node-v${K_NODE_VERSION}-linux-x64.tar.gz +ARG K_NODE_HEADERS_URL=https://nodejs.org/dist/v${K_NODE_VERSION}/node-v${K_NODE_VERSION}-headers.tar.gz + +################################################################## +# Node.js 4.x +################################################################## +RUN groupadd -g 1337 node && \ + useradd -u 1337 --gid node --shell /bin/bash --create-home node + +RUN curl --user-agent "Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Firefox/81.0" --location ${K_NODE_URL}?$(date +%s) \ + --header 'Cache-Control: no-cache, no-store' \ + --header 'Pragma: no-cache' | tar xzv --strip-components=1 --directory /usr/local/ && \ + rm -rfv /usr/local/CHANGELOG.md /usr/local/LICENSE /usr/local/README.md + +RUN curl --user-agent "Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Firefox/81.0" --location ${K_NODE_HEADERS_URL}?$(date +%s) \ + --header 'Cache-Control: no-cache, no-store' \ + --header 'Pragma: no-cache' | tar xzv --strip-components=1 --directory /usr/local/ + +#RUN npm install -g pnpm yarn +RUN npm install -g pnpm@2 + +################################################################## +# Version after install +################################################################## +RUN echo "=============================================" && \ + echo node $(node --version) && \ + echo npm $(npm --version) && \ +# echo yarn $(yarn --version) && \ + echo pnpm $(pnpm --version) && \ + echo "=============================================" + +################################################################## +# cleanup +################################################################## +RUN apt-get purge policykit-1 -y && \ +apt-get clean -y && \ +apt-get autoclean -y && \ +rm -rfv /var/lib/apt/lists/* && \ +rm -rfv /var/cache/apt/archives/*.deb && \ +rm -rfv /tmp/* diff --git a/linux/ecosystem/nodejs/node4/Makefile b/linux/ecosystem/nodejs/node4/Makefile new file mode 100644 index 000000000..9ef622aa9 --- /dev/null +++ b/linux/ecosystem/nodejs/node4/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel --progress plain + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/nodejs/node4/README.md b/linux/ecosystem/nodejs/node4/README.md new file mode 100644 index 000000000..b53fe01e8 --- /dev/null +++ b/linux/ecosystem/nodejs/node4/README.md @@ -0,0 +1,93 @@ +## TeamCity Minimal Build Agent + +[](https://confluence.jetbrains.com/display/ALL/JetBrains+on+GitHub) + +This is an official [JetBrains TeamCity](https://www.jetbrains.com/teamcity/) minimal build agent image. + + More details about tags and components are [here](https://github.com/JetBrains/teamcity-docker-images/blob/master/generated/teamcity-minimal-agent.md). + +The [TeamCity build agent](https://www.jetbrains.com/help/teamcity/build-agent.html) connects to the TeamCity server and spawns the actual build processes. +You can use the ```jetbrains/teamcity-server``` image to run a TeamCity server. + +This minimal image adds just a TeamCity agent without any tools like VCS clients, etc. It is suitable for simple builds and can serve as a base for your custom images. For Java or .NET development we recommend using the default build agent image [jetbrains/teamcity-agent](https://hub.docker.com/r/jetbrains/teamcity-agent/). + +## How to Use This Image + +Pull the TeamCity minimal image from the Docker Hub Repository: + +``` +jetbrains/teamcity-minimal-agent +``` +  +and use the following command to start a container with TeamCity agent running inside +a Linux container: + +``` +docker run -it -e SERVER_URL="" \ + -v :/data/teamcity_agent/conf \ + jetbrains/teamcity-minimal-agent +``` +  +or a Windows container: +``` +docker run -it -e SERVER_URL="" + -v :C:/BuildAgent/conf + jetbrains/teamcity-minimal-agent +``` +where `` is the full URL for TeamCity server, accessible by the agent. Note that `localhost` will not generally not work as it will refer to the `localhost` inside the container. +`` is the host machine directory to serve as the TeamCity agent config directory. We recommend providing this binding in order to persist the agent configuration, e.g. authorization on the server. Note that you should map a different folder for every new agent you create. + +Since version 2020.1, TeamCity agent Docker images __run under a non-root user__. Refer to our [upgrade notes](https://www.jetbrains.com/help/teamcity/upgrade-notes.html#UpgradeNotes-AgentDockerimagesrunundernon-rootuser) for information on possible affected use cases. + +When you run the agent for the first time, you should authorize it via the TeamCity server UI: go to the **Unauthorized Agents** page in your browser. See [more details](https://www.jetbrains.com/help/teamcity/build-agent.html). + +All information about agent authorization is stored in agent's configuration folder. If you stop the container with the agent and then start a new one with the same config folder, the agent's name and authorization state will be preserved. + +TeamCity agent does not need manual upgrade: it will upgrade itself automatically on connecting to an upgraded server. + +### Agent Image Environment Variables + +- **SERVER_URL** - URL of the TeamCity server agent will connect to +- **AGENT_NAME** - (optional) Name of the agent in TeamCity UI, autogenerated if omitted +- **AGENT_TOKEN** - (optional) Agent authorization token, if unset, the agent should be [authorized](https://www.jetbrains.com/help/teamcity/build-agent.html#BuildAgent-BuildAgentStatus) via TeamCity UI. +- **OWN_ADDRESS** - (optional, linux only) IP address build agent binds to, autodetected +- **OWN_PORT** - (optional, linux only) Port build agent binds to, 9090 by default + +### Windows Containers Limitations + +The details on the known problems in Windows containers are available in the [TeamCity documentation](https://www.jetbrains.com/help/teamcity/known-issues.html#KnownIssues-WindowsDockerContainers). + +## Customization + +You can customize the image via the usual Docker procedure: + +1. Run the image +``` +docker run -it -e SERVER_URL="" \ + -v :/data/teamcity_agent/conf \ + --name="my-customized-agent" \ + jetbrains/teamcity-minimal-agent \ +``` +2. Enter the container +``` +docker exec -it my-customized-agent bash +``` + +3. Change whatever you need +4. Exit and [create a new image](https://docs.docker.com/engine/reference/commandline/commit/) from the container +``` +docker commit my-customized-agent +``` + +## License + +The image is available under the [TeamCity license](https://www.jetbrains.com/teamcity/buy/license.html). +TeamCity is free for perpetual use with the limitation of 100 build configurations (jobs) and 3 agents. [Licensing details](https://www.jetbrains.com/help/teamcity/licensing-policy.html). + +## Feedback + +Report issues of suggestions to the official TeamCity [issue tracker](https://youtrack.jetbrains.com/issues/TW). + +## Other TeamCity Images +* [TeamCity Server](https://hub.docker.com/r/jetbrains/teamcity-server/) +* [Build Agent](https://hub.docker.com/r/jetbrains/teamcity-agent/) diff --git a/linux/ecosystem/nodejs/outdated/node4/docker-compose.yml b/linux/ecosystem/nodejs/node4/docker-compose.yml similarity index 100% rename from linux/ecosystem/nodejs/outdated/node4/docker-compose.yml rename to linux/ecosystem/nodejs/node4/docker-compose.yml diff --git a/linux/ecosystem/nodejs/node5/Dockerfile b/linux/ecosystem/nodejs/node5/Dockerfile new file mode 100644 index 000000000..7fdbd42bf --- /dev/null +++ b/linux/ecosystem/nodejs/node5/Dockerfile @@ -0,0 +1,47 @@ +FROM epicmorg/debian:bookworm +LABEL maintainer="EpicMorg DevTeam, developer@epicm.org" + +ARG DEBIAN_FRONTEND=noninteractive + +ARG K_NODE_MAJOR_VERSION=5 +ARG K_NODE_VERSION=${K_NODE_MAJOR_VERSION}.9.1 +ARG K_NODE_URL=https://nodejs.org/dist/v${K_NODE_VERSION}/node-v${K_NODE_VERSION}-linux-x64.tar.gz +ARG K_NODE_HEADERS_URL=https://nodejs.org/dist/v${K_NODE_VERSION}/node-v${K_NODE_VERSION}-headers.tar.gz + +################################################################## +# Node.js 5.x +################################################################## +RUN groupadd -g 1337 node && \ + useradd -u 1337 --gid node --shell /bin/bash --create-home node + +RUN curl --user-agent "Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Firefox/81.0" --location ${K_NODE_URL}?$(date +%s) \ + --header 'Cache-Control: no-cache, no-store' \ + --header 'Pragma: no-cache' | tar xzv --strip-components=1 --directory /usr/local/ && \ + rm -rfv /usr/local/CHANGELOG.md /usr/local/LICENSE /usr/local/README.md + +RUN curl --user-agent "Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Firefox/81.0" --location ${K_NODE_HEADERS_URL}?$(date +%s) \ + --header 'Cache-Control: no-cache, no-store' \ + --header 'Pragma: no-cache' | tar xzv --strip-components=1 --directory /usr/local/ + +#RUN npm install -g pnpm yarn +RUN npm install -g pnpm@2 + +################################################################## +# Version after install +################################################################## +RUN echo "=============================================" && \ + echo node $(node --version) && \ + echo npm $(npm --version) && \ +# echo yarn $(yarn --version) && \ + echo pnpm $(pnpm --version) && \ + echo "=============================================" + +################################################################## +# cleanup +################################################################## +RUN apt-get purge policykit-1 -y && \ +apt-get clean -y && \ +apt-get autoclean -y && \ +rm -rfv /var/lib/apt/lists/* && \ +rm -rfv /var/cache/apt/archives/*.deb && \ +rm -rfv /tmp/* diff --git a/linux/ecosystem/nodejs/node5/Makefile b/linux/ecosystem/nodejs/node5/Makefile new file mode 100644 index 000000000..9ef622aa9 --- /dev/null +++ b/linux/ecosystem/nodejs/node5/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel --progress plain + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/nodejs/node5/README.md b/linux/ecosystem/nodejs/node5/README.md new file mode 100644 index 000000000..b53fe01e8 --- /dev/null +++ b/linux/ecosystem/nodejs/node5/README.md @@ -0,0 +1,93 @@ +## TeamCity Minimal Build Agent + +[](https://confluence.jetbrains.com/display/ALL/JetBrains+on+GitHub) + +This is an official [JetBrains TeamCity](https://www.jetbrains.com/teamcity/) minimal build agent image. + + More details about tags and components are [here](https://github.com/JetBrains/teamcity-docker-images/blob/master/generated/teamcity-minimal-agent.md). + +The [TeamCity build agent](https://www.jetbrains.com/help/teamcity/build-agent.html) connects to the TeamCity server and spawns the actual build processes. +You can use the ```jetbrains/teamcity-server``` image to run a TeamCity server. + +This minimal image adds just a TeamCity agent without any tools like VCS clients, etc. It is suitable for simple builds and can serve as a base for your custom images. For Java or .NET development we recommend using the default build agent image [jetbrains/teamcity-agent](https://hub.docker.com/r/jetbrains/teamcity-agent/). + +## How to Use This Image + +Pull the TeamCity minimal image from the Docker Hub Repository: + +``` +jetbrains/teamcity-minimal-agent +``` +  +and use the following command to start a container with TeamCity agent running inside +a Linux container: + +``` +docker run -it -e SERVER_URL="" \ + -v :/data/teamcity_agent/conf \ + jetbrains/teamcity-minimal-agent +``` +  +or a Windows container: +``` +docker run -it -e SERVER_URL="" + -v :C:/BuildAgent/conf + jetbrains/teamcity-minimal-agent +``` +where `` is the full URL for TeamCity server, accessible by the agent. Note that `localhost` will not generally not work as it will refer to the `localhost` inside the container. +`` is the host machine directory to serve as the TeamCity agent config directory. We recommend providing this binding in order to persist the agent configuration, e.g. authorization on the server. Note that you should map a different folder for every new agent you create. + +Since version 2020.1, TeamCity agent Docker images __run under a non-root user__. Refer to our [upgrade notes](https://www.jetbrains.com/help/teamcity/upgrade-notes.html#UpgradeNotes-AgentDockerimagesrunundernon-rootuser) for information on possible affected use cases. + +When you run the agent for the first time, you should authorize it via the TeamCity server UI: go to the **Unauthorized Agents** page in your browser. See [more details](https://www.jetbrains.com/help/teamcity/build-agent.html). + +All information about agent authorization is stored in agent's configuration folder. If you stop the container with the agent and then start a new one with the same config folder, the agent's name and authorization state will be preserved. + +TeamCity agent does not need manual upgrade: it will upgrade itself automatically on connecting to an upgraded server. + +### Agent Image Environment Variables + +- **SERVER_URL** - URL of the TeamCity server agent will connect to +- **AGENT_NAME** - (optional) Name of the agent in TeamCity UI, autogenerated if omitted +- **AGENT_TOKEN** - (optional) Agent authorization token, if unset, the agent should be [authorized](https://www.jetbrains.com/help/teamcity/build-agent.html#BuildAgent-BuildAgentStatus) via TeamCity UI. +- **OWN_ADDRESS** - (optional, linux only) IP address build agent binds to, autodetected +- **OWN_PORT** - (optional, linux only) Port build agent binds to, 9090 by default + +### Windows Containers Limitations + +The details on the known problems in Windows containers are available in the [TeamCity documentation](https://www.jetbrains.com/help/teamcity/known-issues.html#KnownIssues-WindowsDockerContainers). + +## Customization + +You can customize the image via the usual Docker procedure: + +1. Run the image +``` +docker run -it -e SERVER_URL="" \ + -v :/data/teamcity_agent/conf \ + --name="my-customized-agent" \ + jetbrains/teamcity-minimal-agent \ +``` +2. Enter the container +``` +docker exec -it my-customized-agent bash +``` + +3. Change whatever you need +4. Exit and [create a new image](https://docs.docker.com/engine/reference/commandline/commit/) from the container +``` +docker commit my-customized-agent +``` + +## License + +The image is available under the [TeamCity license](https://www.jetbrains.com/teamcity/buy/license.html). +TeamCity is free for perpetual use with the limitation of 100 build configurations (jobs) and 3 agents. [Licensing details](https://www.jetbrains.com/help/teamcity/licensing-policy.html). + +## Feedback + +Report issues of suggestions to the official TeamCity [issue tracker](https://youtrack.jetbrains.com/issues/TW). + +## Other TeamCity Images +* [TeamCity Server](https://hub.docker.com/r/jetbrains/teamcity-server/) +* [Build Agent](https://hub.docker.com/r/jetbrains/teamcity-agent/) diff --git a/linux/ecosystem/nodejs/node5/docker-compose.yml b/linux/ecosystem/nodejs/node5/docker-compose.yml new file mode 100644 index 000000000..25eed381e --- /dev/null +++ b/linux/ecosystem/nodejs/node5/docker-compose.yml @@ -0,0 +1,6 @@ +version: '3' +services: + app: + image: "epicmorg/nodejs:node5" + build: + context: . diff --git a/linux/ecosystem/nodejs/node6/Dockerfile b/linux/ecosystem/nodejs/node6/Dockerfile new file mode 100644 index 000000000..f50a18eca --- /dev/null +++ b/linux/ecosystem/nodejs/node6/Dockerfile @@ -0,0 +1,47 @@ +FROM epicmorg/debian:bookworm +LABEL maintainer="EpicMorg DevTeam, developer@epicm.org" + +ARG DEBIAN_FRONTEND=noninteractive + +ARG K_NODE_MAJOR_VERSION=6 +ARG K_NODE_VERSION=${K_NODE_MAJOR_VERSION}.17.1 +ARG K_NODE_URL=https://nodejs.org/dist/v${K_NODE_VERSION}/node-v${K_NODE_VERSION}-linux-x64.tar.gz +ARG K_NODE_HEADERS_URL=https://nodejs.org/dist/v${K_NODE_VERSION}/node-v${K_NODE_VERSION}-headers.tar.gz + +################################################################## +# Node.js 6.x +################################################################## +RUN groupadd -g 1337 node && \ + useradd -u 1337 --gid node --shell /bin/bash --create-home node + +RUN curl --user-agent "Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Firefox/81.0" --location ${K_NODE_URL}?$(date +%s) \ + --header 'Cache-Control: no-cache, no-store' \ + --header 'Pragma: no-cache' | tar xzv --strip-components=1 --directory /usr/local/ && \ + rm -rfv /usr/local/CHANGELOG.md /usr/local/LICENSE /usr/local/README.md + +RUN curl --user-agent "Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Firefox/81.0" --location ${K_NODE_HEADERS_URL}?$(date +%s) \ + --header 'Cache-Control: no-cache, no-store' \ + --header 'Pragma: no-cache' | tar xzv --strip-components=1 --directory /usr/local/ + +#RUN npm install -g pnpm yarn +RUN npm install -g pnpm@2 + +################################################################## +# Version after install +################################################################## +RUN echo "=============================================" && \ + echo node $(node --version) && \ + echo npm $(npm --version) && \ +# echo yarn $(yarn --version) && \ + echo pnpm $(pnpm --version) && \ + echo "=============================================" + +################################################################## +# cleanup +################################################################## +RUN apt-get purge policykit-1 -y && \ +apt-get clean -y && \ +apt-get autoclean -y && \ +rm -rfv /var/lib/apt/lists/* && \ +rm -rfv /var/cache/apt/archives/*.deb && \ +rm -rfv /tmp/* diff --git a/linux/ecosystem/nodejs/node6/Makefile b/linux/ecosystem/nodejs/node6/Makefile new file mode 100644 index 000000000..9ef622aa9 --- /dev/null +++ b/linux/ecosystem/nodejs/node6/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel --progress plain + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/nodejs/node6/README.md b/linux/ecosystem/nodejs/node6/README.md new file mode 100644 index 000000000..b53fe01e8 --- /dev/null +++ b/linux/ecosystem/nodejs/node6/README.md @@ -0,0 +1,93 @@ +## TeamCity Minimal Build Agent + +[](https://confluence.jetbrains.com/display/ALL/JetBrains+on+GitHub) + +This is an official [JetBrains TeamCity](https://www.jetbrains.com/teamcity/) minimal build agent image. + + More details about tags and components are [here](https://github.com/JetBrains/teamcity-docker-images/blob/master/generated/teamcity-minimal-agent.md). + +The [TeamCity build agent](https://www.jetbrains.com/help/teamcity/build-agent.html) connects to the TeamCity server and spawns the actual build processes. +You can use the ```jetbrains/teamcity-server``` image to run a TeamCity server. + +This minimal image adds just a TeamCity agent without any tools like VCS clients, etc. It is suitable for simple builds and can serve as a base for your custom images. For Java or .NET development we recommend using the default build agent image [jetbrains/teamcity-agent](https://hub.docker.com/r/jetbrains/teamcity-agent/). + +## How to Use This Image + +Pull the TeamCity minimal image from the Docker Hub Repository: + +``` +jetbrains/teamcity-minimal-agent +``` +  +and use the following command to start a container with TeamCity agent running inside +a Linux container: + +``` +docker run -it -e SERVER_URL="" \ + -v :/data/teamcity_agent/conf \ + jetbrains/teamcity-minimal-agent +``` +  +or a Windows container: +``` +docker run -it -e SERVER_URL="" + -v :C:/BuildAgent/conf + jetbrains/teamcity-minimal-agent +``` +where `` is the full URL for TeamCity server, accessible by the agent. Note that `localhost` will not generally not work as it will refer to the `localhost` inside the container. +`` is the host machine directory to serve as the TeamCity agent config directory. We recommend providing this binding in order to persist the agent configuration, e.g. authorization on the server. Note that you should map a different folder for every new agent you create. + +Since version 2020.1, TeamCity agent Docker images __run under a non-root user__. Refer to our [upgrade notes](https://www.jetbrains.com/help/teamcity/upgrade-notes.html#UpgradeNotes-AgentDockerimagesrunundernon-rootuser) for information on possible affected use cases. + +When you run the agent for the first time, you should authorize it via the TeamCity server UI: go to the **Unauthorized Agents** page in your browser. See [more details](https://www.jetbrains.com/help/teamcity/build-agent.html). + +All information about agent authorization is stored in agent's configuration folder. If you stop the container with the agent and then start a new one with the same config folder, the agent's name and authorization state will be preserved. + +TeamCity agent does not need manual upgrade: it will upgrade itself automatically on connecting to an upgraded server. + +### Agent Image Environment Variables + +- **SERVER_URL** - URL of the TeamCity server agent will connect to +- **AGENT_NAME** - (optional) Name of the agent in TeamCity UI, autogenerated if omitted +- **AGENT_TOKEN** - (optional) Agent authorization token, if unset, the agent should be [authorized](https://www.jetbrains.com/help/teamcity/build-agent.html#BuildAgent-BuildAgentStatus) via TeamCity UI. +- **OWN_ADDRESS** - (optional, linux only) IP address build agent binds to, autodetected +- **OWN_PORT** - (optional, linux only) Port build agent binds to, 9090 by default + +### Windows Containers Limitations + +The details on the known problems in Windows containers are available in the [TeamCity documentation](https://www.jetbrains.com/help/teamcity/known-issues.html#KnownIssues-WindowsDockerContainers). + +## Customization + +You can customize the image via the usual Docker procedure: + +1. Run the image +``` +docker run -it -e SERVER_URL="" \ + -v :/data/teamcity_agent/conf \ + --name="my-customized-agent" \ + jetbrains/teamcity-minimal-agent \ +``` +2. Enter the container +``` +docker exec -it my-customized-agent bash +``` + +3. Change whatever you need +4. Exit and [create a new image](https://docs.docker.com/engine/reference/commandline/commit/) from the container +``` +docker commit my-customized-agent +``` + +## License + +The image is available under the [TeamCity license](https://www.jetbrains.com/teamcity/buy/license.html). +TeamCity is free for perpetual use with the limitation of 100 build configurations (jobs) and 3 agents. [Licensing details](https://www.jetbrains.com/help/teamcity/licensing-policy.html). + +## Feedback + +Report issues of suggestions to the official TeamCity [issue tracker](https://youtrack.jetbrains.com/issues/TW). + +## Other TeamCity Images +* [TeamCity Server](https://hub.docker.com/r/jetbrains/teamcity-server/) +* [Build Agent](https://hub.docker.com/r/jetbrains/teamcity-agent/) diff --git a/linux/ecosystem/nodejs/outdated/node6/docker-compose.yml b/linux/ecosystem/nodejs/node6/docker-compose.yml similarity index 100% rename from linux/ecosystem/nodejs/outdated/node6/docker-compose.yml rename to linux/ecosystem/nodejs/node6/docker-compose.yml diff --git a/linux/ecosystem/nodejs/node7/Dockerfile b/linux/ecosystem/nodejs/node7/Dockerfile new file mode 100644 index 000000000..0e6951bcb --- /dev/null +++ b/linux/ecosystem/nodejs/node7/Dockerfile @@ -0,0 +1,46 @@ +FROM epicmorg/debian:bookworm +LABEL maintainer="EpicMorg DevTeam, developer@epicm.org" + +ARG DEBIAN_FRONTEND=noninteractive + +ARG K_NODE_MAJOR_VERSION=7 +ARG K_NODE_VERSION=${K_NODE_MAJOR_VERSION}.10.1 +ARG K_NODE_URL=https://nodejs.org/dist/v${K_NODE_VERSION}/node-v${K_NODE_VERSION}-linux-x64.tar.gz +ARG K_NODE_HEADERS_URL=https://nodejs.org/dist/v${K_NODE_VERSION}/node-v${K_NODE_VERSION}-headers.tar.gz + +################################################################## +# Node.js 7.x +################################################################## +RUN groupadd -g 1337 node && \ + useradd -u 1337 --gid node --shell /bin/bash --create-home node + +RUN curl --user-agent "Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Firefox/81.0" --location ${K_NODE_URL}?$(date +%s) \ + --header 'Cache-Control: no-cache, no-store' \ + --header 'Pragma: no-cache' | tar xzv --strip-components=1 --directory /usr/local/ && \ + rm -rfv /usr/local/CHANGELOG.md /usr/local/LICENSE /usr/local/README.md + +RUN curl --user-agent "Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Firefox/81.0" --location ${K_NODE_HEADERS_URL}?$(date +%s) \ + --header 'Cache-Control: no-cache, no-store' \ + --header 'Pragma: no-cache' | tar xzv --strip-components=1 --directory /usr/local/ + +RUN npm install -g pnpm@3 yarn + +################################################################## +# Version after install +################################################################## +RUN echo "=============================================" && \ + echo node $(node --version) && \ + echo npm $(npm --version) && \ + echo yarn $(yarn --version) && \ + echo pnpm $(pnpm --version) && \ + echo "=============================================" + +################################################################## +# cleanup +################################################################## +RUN apt-get purge policykit-1 -y && \ +apt-get clean -y && \ +apt-get autoclean -y && \ +rm -rfv /var/lib/apt/lists/* && \ +rm -rfv /var/cache/apt/archives/*.deb && \ +rm -rfv /tmp/* diff --git a/linux/ecosystem/nodejs/node7/Makefile b/linux/ecosystem/nodejs/node7/Makefile new file mode 100644 index 000000000..9ef622aa9 --- /dev/null +++ b/linux/ecosystem/nodejs/node7/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel --progress plain + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/nodejs/node7/README.md b/linux/ecosystem/nodejs/node7/README.md new file mode 100644 index 000000000..b53fe01e8 --- /dev/null +++ b/linux/ecosystem/nodejs/node7/README.md @@ -0,0 +1,93 @@ +## TeamCity Minimal Build Agent + +[](https://confluence.jetbrains.com/display/ALL/JetBrains+on+GitHub) + +This is an official [JetBrains TeamCity](https://www.jetbrains.com/teamcity/) minimal build agent image. + + More details about tags and components are [here](https://github.com/JetBrains/teamcity-docker-images/blob/master/generated/teamcity-minimal-agent.md). + +The [TeamCity build agent](https://www.jetbrains.com/help/teamcity/build-agent.html) connects to the TeamCity server and spawns the actual build processes. +You can use the ```jetbrains/teamcity-server``` image to run a TeamCity server. + +This minimal image adds just a TeamCity agent without any tools like VCS clients, etc. It is suitable for simple builds and can serve as a base for your custom images. For Java or .NET development we recommend using the default build agent image [jetbrains/teamcity-agent](https://hub.docker.com/r/jetbrains/teamcity-agent/). + +## How to Use This Image + +Pull the TeamCity minimal image from the Docker Hub Repository: + +``` +jetbrains/teamcity-minimal-agent +``` +  +and use the following command to start a container with TeamCity agent running inside +a Linux container: + +``` +docker run -it -e SERVER_URL="" \ + -v :/data/teamcity_agent/conf \ + jetbrains/teamcity-minimal-agent +``` +  +or a Windows container: +``` +docker run -it -e SERVER_URL="" + -v :C:/BuildAgent/conf + jetbrains/teamcity-minimal-agent +``` +where `` is the full URL for TeamCity server, accessible by the agent. Note that `localhost` will not generally not work as it will refer to the `localhost` inside the container. +`` is the host machine directory to serve as the TeamCity agent config directory. We recommend providing this binding in order to persist the agent configuration, e.g. authorization on the server. Note that you should map a different folder for every new agent you create. + +Since version 2020.1, TeamCity agent Docker images __run under a non-root user__. Refer to our [upgrade notes](https://www.jetbrains.com/help/teamcity/upgrade-notes.html#UpgradeNotes-AgentDockerimagesrunundernon-rootuser) for information on possible affected use cases. + +When you run the agent for the first time, you should authorize it via the TeamCity server UI: go to the **Unauthorized Agents** page in your browser. See [more details](https://www.jetbrains.com/help/teamcity/build-agent.html). + +All information about agent authorization is stored in agent's configuration folder. If you stop the container with the agent and then start a new one with the same config folder, the agent's name and authorization state will be preserved. + +TeamCity agent does not need manual upgrade: it will upgrade itself automatically on connecting to an upgraded server. + +### Agent Image Environment Variables + +- **SERVER_URL** - URL of the TeamCity server agent will connect to +- **AGENT_NAME** - (optional) Name of the agent in TeamCity UI, autogenerated if omitted +- **AGENT_TOKEN** - (optional) Agent authorization token, if unset, the agent should be [authorized](https://www.jetbrains.com/help/teamcity/build-agent.html#BuildAgent-BuildAgentStatus) via TeamCity UI. +- **OWN_ADDRESS** - (optional, linux only) IP address build agent binds to, autodetected +- **OWN_PORT** - (optional, linux only) Port build agent binds to, 9090 by default + +### Windows Containers Limitations + +The details on the known problems in Windows containers are available in the [TeamCity documentation](https://www.jetbrains.com/help/teamcity/known-issues.html#KnownIssues-WindowsDockerContainers). + +## Customization + +You can customize the image via the usual Docker procedure: + +1. Run the image +``` +docker run -it -e SERVER_URL="" \ + -v :/data/teamcity_agent/conf \ + --name="my-customized-agent" \ + jetbrains/teamcity-minimal-agent \ +``` +2. Enter the container +``` +docker exec -it my-customized-agent bash +``` + +3. Change whatever you need +4. Exit and [create a new image](https://docs.docker.com/engine/reference/commandline/commit/) from the container +``` +docker commit my-customized-agent +``` + +## License + +The image is available under the [TeamCity license](https://www.jetbrains.com/teamcity/buy/license.html). +TeamCity is free for perpetual use with the limitation of 100 build configurations (jobs) and 3 agents. [Licensing details](https://www.jetbrains.com/help/teamcity/licensing-policy.html). + +## Feedback + +Report issues of suggestions to the official TeamCity [issue tracker](https://youtrack.jetbrains.com/issues/TW). + +## Other TeamCity Images +* [TeamCity Server](https://hub.docker.com/r/jetbrains/teamcity-server/) +* [Build Agent](https://hub.docker.com/r/jetbrains/teamcity-agent/) diff --git a/linux/ecosystem/nodejs/node7/docker-compose.yml b/linux/ecosystem/nodejs/node7/docker-compose.yml new file mode 100644 index 000000000..2e58a04d6 --- /dev/null +++ b/linux/ecosystem/nodejs/node7/docker-compose.yml @@ -0,0 +1,6 @@ +version: '3' +services: + app: + image: "epicmorg/nodejs:node7" + build: + context: . diff --git a/linux/ecosystem/nodejs/node8/Dockerfile b/linux/ecosystem/nodejs/node8/Dockerfile new file mode 100644 index 000000000..294556c65 --- /dev/null +++ b/linux/ecosystem/nodejs/node8/Dockerfile @@ -0,0 +1,46 @@ +FROM epicmorg/debian:bookworm +LABEL maintainer="EpicMorg DevTeam, developer@epicm.org" + +ARG DEBIAN_FRONTEND=noninteractive + +ARG K_NODE_MAJOR_VERSION=8 +ARG K_NODE_VERSION=${K_NODE_MAJOR_VERSION}.17.0 +ARG K_NODE_URL=https://nodejs.org/dist/v${K_NODE_VERSION}/node-v${K_NODE_VERSION}-linux-x64.tar.gz +ARG K_NODE_HEADERS_URL=https://nodejs.org/dist/v${K_NODE_VERSION}/node-v${K_NODE_VERSION}-headers.tar.gz + +################################################################## +# Node.js 8.x +################################################################## +RUN groupadd -g 1337 node && \ + useradd -u 1337 --gid node --shell /bin/bash --create-home node + +RUN curl --user-agent "Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Firefox/81.0" --location ${K_NODE_URL}?$(date +%s) \ + --header 'Cache-Control: no-cache, no-store' \ + --header 'Pragma: no-cache' | tar xzv --strip-components=1 --directory /usr/local/ && \ + rm -rfv /usr/local/CHANGELOG.md /usr/local/LICENSE /usr/local/README.md + +RUN curl --user-agent "Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Firefox/81.0" --location ${K_NODE_HEADERS_URL}?$(date +%s) \ + --header 'Cache-Control: no-cache, no-store' \ + --header 'Pragma: no-cache' | tar xzv --strip-components=1 --directory /usr/local/ + +RUN npm install -g pnpm@3 yarn + +################################################################## +# Version after install +################################################################## +RUN echo "=============================================" && \ + echo node $(node --version) && \ + echo npm $(npm --version) && \ + echo yarn $(yarn --version) && \ + echo pnpm $(pnpm --version) && \ + echo "=============================================" + +################################################################## +# cleanup +################################################################## +RUN apt-get purge policykit-1 -y && \ +apt-get clean -y && \ +apt-get autoclean -y && \ +rm -rfv /var/lib/apt/lists/* && \ +rm -rfv /var/cache/apt/archives/*.deb && \ +rm -rfv /tmp/* diff --git a/linux/ecosystem/nodejs/node8/Makefile b/linux/ecosystem/nodejs/node8/Makefile new file mode 100644 index 000000000..9ef622aa9 --- /dev/null +++ b/linux/ecosystem/nodejs/node8/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel --progress plain + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/nodejs/node8/README.md b/linux/ecosystem/nodejs/node8/README.md new file mode 100644 index 000000000..b53fe01e8 --- /dev/null +++ b/linux/ecosystem/nodejs/node8/README.md @@ -0,0 +1,93 @@ +## TeamCity Minimal Build Agent + +[](https://confluence.jetbrains.com/display/ALL/JetBrains+on+GitHub) + +This is an official [JetBrains TeamCity](https://www.jetbrains.com/teamcity/) minimal build agent image. + + More details about tags and components are [here](https://github.com/JetBrains/teamcity-docker-images/blob/master/generated/teamcity-minimal-agent.md). + +The [TeamCity build agent](https://www.jetbrains.com/help/teamcity/build-agent.html) connects to the TeamCity server and spawns the actual build processes. +You can use the ```jetbrains/teamcity-server``` image to run a TeamCity server. + +This minimal image adds just a TeamCity agent without any tools like VCS clients, etc. It is suitable for simple builds and can serve as a base for your custom images. For Java or .NET development we recommend using the default build agent image [jetbrains/teamcity-agent](https://hub.docker.com/r/jetbrains/teamcity-agent/). + +## How to Use This Image + +Pull the TeamCity minimal image from the Docker Hub Repository: + +``` +jetbrains/teamcity-minimal-agent +``` +  +and use the following command to start a container with TeamCity agent running inside +a Linux container: + +``` +docker run -it -e SERVER_URL="" \ + -v :/data/teamcity_agent/conf \ + jetbrains/teamcity-minimal-agent +``` +  +or a Windows container: +``` +docker run -it -e SERVER_URL="" + -v :C:/BuildAgent/conf + jetbrains/teamcity-minimal-agent +``` +where `` is the full URL for TeamCity server, accessible by the agent. Note that `localhost` will not generally not work as it will refer to the `localhost` inside the container. +`` is the host machine directory to serve as the TeamCity agent config directory. We recommend providing this binding in order to persist the agent configuration, e.g. authorization on the server. Note that you should map a different folder for every new agent you create. + +Since version 2020.1, TeamCity agent Docker images __run under a non-root user__. Refer to our [upgrade notes](https://www.jetbrains.com/help/teamcity/upgrade-notes.html#UpgradeNotes-AgentDockerimagesrunundernon-rootuser) for information on possible affected use cases. + +When you run the agent for the first time, you should authorize it via the TeamCity server UI: go to the **Unauthorized Agents** page in your browser. See [more details](https://www.jetbrains.com/help/teamcity/build-agent.html). + +All information about agent authorization is stored in agent's configuration folder. If you stop the container with the agent and then start a new one with the same config folder, the agent's name and authorization state will be preserved. + +TeamCity agent does not need manual upgrade: it will upgrade itself automatically on connecting to an upgraded server. + +### Agent Image Environment Variables + +- **SERVER_URL** - URL of the TeamCity server agent will connect to +- **AGENT_NAME** - (optional) Name of the agent in TeamCity UI, autogenerated if omitted +- **AGENT_TOKEN** - (optional) Agent authorization token, if unset, the agent should be [authorized](https://www.jetbrains.com/help/teamcity/build-agent.html#BuildAgent-BuildAgentStatus) via TeamCity UI. +- **OWN_ADDRESS** - (optional, linux only) IP address build agent binds to, autodetected +- **OWN_PORT** - (optional, linux only) Port build agent binds to, 9090 by default + +### Windows Containers Limitations + +The details on the known problems in Windows containers are available in the [TeamCity documentation](https://www.jetbrains.com/help/teamcity/known-issues.html#KnownIssues-WindowsDockerContainers). + +## Customization + +You can customize the image via the usual Docker procedure: + +1. Run the image +``` +docker run -it -e SERVER_URL="" \ + -v :/data/teamcity_agent/conf \ + --name="my-customized-agent" \ + jetbrains/teamcity-minimal-agent \ +``` +2. Enter the container +``` +docker exec -it my-customized-agent bash +``` + +3. Change whatever you need +4. Exit and [create a new image](https://docs.docker.com/engine/reference/commandline/commit/) from the container +``` +docker commit my-customized-agent +``` + +## License + +The image is available under the [TeamCity license](https://www.jetbrains.com/teamcity/buy/license.html). +TeamCity is free for perpetual use with the limitation of 100 build configurations (jobs) and 3 agents. [Licensing details](https://www.jetbrains.com/help/teamcity/licensing-policy.html). + +## Feedback + +Report issues of suggestions to the official TeamCity [issue tracker](https://youtrack.jetbrains.com/issues/TW). + +## Other TeamCity Images +* [TeamCity Server](https://hub.docker.com/r/jetbrains/teamcity-server/) +* [Build Agent](https://hub.docker.com/r/jetbrains/teamcity-agent/) diff --git a/linux/ecosystem/nodejs/outdated/node8/docker-compose.yml b/linux/ecosystem/nodejs/node8/docker-compose.yml similarity index 100% rename from linux/ecosystem/nodejs/outdated/node8/docker-compose.yml rename to linux/ecosystem/nodejs/node8/docker-compose.yml diff --git a/linux/ecosystem/nodejs/node9/Dockerfile b/linux/ecosystem/nodejs/node9/Dockerfile new file mode 100644 index 000000000..0422fe00d --- /dev/null +++ b/linux/ecosystem/nodejs/node9/Dockerfile @@ -0,0 +1,46 @@ +FROM epicmorg/debian:bookworm +LABEL maintainer="EpicMorg DevTeam, developer@epicm.org" + +ARG DEBIAN_FRONTEND=noninteractive + +ARG K_NODE_MAJOR_VERSION=9 +ARG K_NODE_VERSION=${K_NODE_MAJOR_VERSION}.11.2 +ARG K_NODE_URL=https://nodejs.org/dist/v${K_NODE_VERSION}/node-v${K_NODE_VERSION}-linux-x64.tar.gz +ARG K_NODE_HEADERS_URL=https://nodejs.org/dist/v${K_NODE_VERSION}/node-v${K_NODE_VERSION}-headers.tar.gz + +################################################################## +# Node.js 9.x +################################################################## +RUN groupadd -g 1337 node && \ + useradd -u 1337 --gid node --shell /bin/bash --create-home node + +RUN curl --user-agent "Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Firefox/81.0" --location ${K_NODE_URL}?$(date +%s) \ + --header 'Cache-Control: no-cache, no-store' \ + --header 'Pragma: no-cache' | tar xzv --strip-components=1 --directory /usr/local/ && \ + rm -rfv /usr/local/CHANGELOG.md /usr/local/LICENSE /usr/local/README.md + +RUN curl --user-agent "Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Firefox/81.0" --location ${K_NODE_HEADERS_URL}?$(date +%s) \ + --header 'Cache-Control: no-cache, no-store' \ + --header 'Pragma: no-cache' | tar xzv --strip-components=1 --directory /usr/local/ + +RUN npm install -g pnpm@3 yarn + +################################################################## +# Version after install +################################################################## +RUN echo "=============================================" && \ + echo node $(node --version) && \ + echo npm $(npm --version) && \ + echo yarn $(yarn --version) && \ + echo pnpm $(pnpm --version) && \ + echo "=============================================" + +################################################################## +# cleanup +################################################################## +RUN apt-get purge policykit-1 -y && \ +apt-get clean -y && \ +apt-get autoclean -y && \ +rm -rfv /var/lib/apt/lists/* && \ +rm -rfv /var/cache/apt/archives/*.deb && \ +rm -rfv /tmp/* diff --git a/linux/ecosystem/nodejs/node9/Makefile b/linux/ecosystem/nodejs/node9/Makefile new file mode 100644 index 000000000..9ef622aa9 --- /dev/null +++ b/linux/ecosystem/nodejs/node9/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel --progress plain + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/nodejs/node9/README.md b/linux/ecosystem/nodejs/node9/README.md new file mode 100644 index 000000000..b53fe01e8 --- /dev/null +++ b/linux/ecosystem/nodejs/node9/README.md @@ -0,0 +1,93 @@ +## TeamCity Minimal Build Agent + +[](https://confluence.jetbrains.com/display/ALL/JetBrains+on+GitHub) + +This is an official [JetBrains TeamCity](https://www.jetbrains.com/teamcity/) minimal build agent image. + + More details about tags and components are [here](https://github.com/JetBrains/teamcity-docker-images/blob/master/generated/teamcity-minimal-agent.md). + +The [TeamCity build agent](https://www.jetbrains.com/help/teamcity/build-agent.html) connects to the TeamCity server and spawns the actual build processes. +You can use the ```jetbrains/teamcity-server``` image to run a TeamCity server. + +This minimal image adds just a TeamCity agent without any tools like VCS clients, etc. It is suitable for simple builds and can serve as a base for your custom images. For Java or .NET development we recommend using the default build agent image [jetbrains/teamcity-agent](https://hub.docker.com/r/jetbrains/teamcity-agent/). + +## How to Use This Image + +Pull the TeamCity minimal image from the Docker Hub Repository: + +``` +jetbrains/teamcity-minimal-agent +``` +  +and use the following command to start a container with TeamCity agent running inside +a Linux container: + +``` +docker run -it -e SERVER_URL="" \ + -v :/data/teamcity_agent/conf \ + jetbrains/teamcity-minimal-agent +``` +  +or a Windows container: +``` +docker run -it -e SERVER_URL="" + -v :C:/BuildAgent/conf + jetbrains/teamcity-minimal-agent +``` +where `` is the full URL for TeamCity server, accessible by the agent. Note that `localhost` will not generally not work as it will refer to the `localhost` inside the container. +`` is the host machine directory to serve as the TeamCity agent config directory. We recommend providing this binding in order to persist the agent configuration, e.g. authorization on the server. Note that you should map a different folder for every new agent you create. + +Since version 2020.1, TeamCity agent Docker images __run under a non-root user__. Refer to our [upgrade notes](https://www.jetbrains.com/help/teamcity/upgrade-notes.html#UpgradeNotes-AgentDockerimagesrunundernon-rootuser) for information on possible affected use cases. + +When you run the agent for the first time, you should authorize it via the TeamCity server UI: go to the **Unauthorized Agents** page in your browser. See [more details](https://www.jetbrains.com/help/teamcity/build-agent.html). + +All information about agent authorization is stored in agent's configuration folder. If you stop the container with the agent and then start a new one with the same config folder, the agent's name and authorization state will be preserved. + +TeamCity agent does not need manual upgrade: it will upgrade itself automatically on connecting to an upgraded server. + +### Agent Image Environment Variables + +- **SERVER_URL** - URL of the TeamCity server agent will connect to +- **AGENT_NAME** - (optional) Name of the agent in TeamCity UI, autogenerated if omitted +- **AGENT_TOKEN** - (optional) Agent authorization token, if unset, the agent should be [authorized](https://www.jetbrains.com/help/teamcity/build-agent.html#BuildAgent-BuildAgentStatus) via TeamCity UI. +- **OWN_ADDRESS** - (optional, linux only) IP address build agent binds to, autodetected +- **OWN_PORT** - (optional, linux only) Port build agent binds to, 9090 by default + +### Windows Containers Limitations + +The details on the known problems in Windows containers are available in the [TeamCity documentation](https://www.jetbrains.com/help/teamcity/known-issues.html#KnownIssues-WindowsDockerContainers). + +## Customization + +You can customize the image via the usual Docker procedure: + +1. Run the image +``` +docker run -it -e SERVER_URL="" \ + -v :/data/teamcity_agent/conf \ + --name="my-customized-agent" \ + jetbrains/teamcity-minimal-agent \ +``` +2. Enter the container +``` +docker exec -it my-customized-agent bash +``` + +3. Change whatever you need +4. Exit and [create a new image](https://docs.docker.com/engine/reference/commandline/commit/) from the container +``` +docker commit my-customized-agent +``` + +## License + +The image is available under the [TeamCity license](https://www.jetbrains.com/teamcity/buy/license.html). +TeamCity is free for perpetual use with the limitation of 100 build configurations (jobs) and 3 agents. [Licensing details](https://www.jetbrains.com/help/teamcity/licensing-policy.html). + +## Feedback + +Report issues of suggestions to the official TeamCity [issue tracker](https://youtrack.jetbrains.com/issues/TW). + +## Other TeamCity Images +* [TeamCity Server](https://hub.docker.com/r/jetbrains/teamcity-server/) +* [Build Agent](https://hub.docker.com/r/jetbrains/teamcity-agent/) diff --git a/linux/ecosystem/nodejs/node9/docker-compose.yml b/linux/ecosystem/nodejs/node9/docker-compose.yml new file mode 100644 index 000000000..6e3e2484c --- /dev/null +++ b/linux/ecosystem/nodejs/node9/docker-compose.yml @@ -0,0 +1,6 @@ +version: '3' +services: + app: + image: "epicmorg/nodejs:node9" + build: + context: . diff --git a/linux/ecosystem/nodejs/outdated/node10/Dockerfile b/linux/ecosystem/nodejs/outdated/node10/Dockerfile deleted file mode 100644 index 007130ecb..000000000 --- a/linux/ecosystem/nodejs/outdated/node10/Dockerfile +++ /dev/null @@ -1,36 +0,0 @@ -FROM epicmorg/debian:bullseye -LABEL maintainer="EpicMorg DevTeam, developer@epicm.org" -ARG DEBIAN_FRONTEND=noninteractive - -################################################################## -# Node.js 10.x -################################################################## -RUN groupadd node && \ - useradd --gid node --shell /bin/bash --create-home node - -RUN curl -fsSL https://deb.nodesource.com/setup_10.x | bash - && \ - curl -fsSL https://dl.yarnpkg.com/debian/pubkey.gpg | sudo gpg --dearmor -o /etc/apt/keyrings/yarnpkg.gpg && \ - echo "deb [signed-by=/etc/apt/keyrings/yarnpkg.gpg] https://nightly.yarnpkg.com/debian/ nightly main" > /etc/apt/sources.list.d/yarn.list && \ - apt-get update && \ - apt-cache policy nodejs && \ - apt-get install -y nodejs=10.24.1-deb-1nodesource1 yarn - -# curl -L https://www.npmjs.com/install.sh | sh -# npm install -g npm - -RUN echo "=============================================" && \ - echo node $(node --version) && \ - echo npm $(npm --version) && \ - echo yarn $(yarn --version) && \ - echo "=============================================" - -################################################################## -# cleaninig up -################################################################## -RUN apt clean -y && \ - apt-get clean all && \ - apt autoclean -y && \ - rm -rfv /var/lib/apt/lists/* && \ - rm -rfv /var/cache/apt/archives/*.deb && \ - rm -rfv /tmp/* - diff --git a/linux/ecosystem/nodejs/outdated/node11/Dockerfile b/linux/ecosystem/nodejs/outdated/node11/Dockerfile deleted file mode 100644 index e7c54f0cc..000000000 --- a/linux/ecosystem/nodejs/outdated/node11/Dockerfile +++ /dev/null @@ -1,34 +0,0 @@ -FROM epicmorg/debian:buster -LABEL maintainer="EpicMorg DevTeam, developer@epicm.org" -ARG DEBIAN_FRONTEND=noninteractive - -################################################################## -# Node.js 11.x -################################################################## -RUN groupadd node && \ - useradd --gid node --shell /bin/bash --create-home node - -RUN curl -fsSL https://deb.nodesource.com/setup_11.x | bash - && \ - curl -fsSL https://dl.yarnpkg.com/debian/pubkey.gpg | sudo gpg --dearmor -o /etc/apt/keyrings/yarnpkg.gpg && \ - echo "deb [signed-by=/etc/apt/keyrings/yarnpkg.gpg] https://nightly.yarnpkg.com/debian/ nightly main" > /etc/apt/sources.list.d/yarn.list && \ - apt-get update && \ - apt-get install -y nodejs yarn - -# curl -L https://www.npmjs.com/install.sh | sh -# npm install -g npm - -RUN echo "=============================================" && \ - echo node $(node --version) && \ - echo npm $(npm --version) && \ - echo yarn $(yarn --version) && \ - echo "=============================================" - -################################################################## -# cleaninig up -################################################################## -RUN apt clean -y && \ - apt-get clean all && \ - apt autoclean -y && \ - rm -rfv /var/lib/apt/lists/* && \ - rm -rfv /var/cache/apt/archives/*.deb && \ - rm -rfv /tmp/* \ No newline at end of file diff --git a/linux/ecosystem/nodejs/outdated/node12/Dockerfile b/linux/ecosystem/nodejs/outdated/node12/Dockerfile deleted file mode 100644 index d8600f244..000000000 --- a/linux/ecosystem/nodejs/outdated/node12/Dockerfile +++ /dev/null @@ -1,35 +0,0 @@ -FROM epicmorg/debian:bullseye -LABEL maintainer="EpicMorg DevTeam, developer@epicm.org" -ARG DEBIAN_FRONTEND=noninteractive - -################################################################## -# Node.js 12.x -################################################################## -RUN groupadd node && \ - useradd --gid node --shell /bin/bash --create-home node - -RUN curl -fsSL https://deb.nodesource.com/setup_12.x | bash - && \ - curl -fsSL https://dl.yarnpkg.com/debian/pubkey.gpg | sudo gpg --dearmor -o /etc/apt/keyrings/yarnpkg.gpg && \ - echo "deb [signed-by=/etc/apt/keyrings/yarnpkg.gpg] https://nightly.yarnpkg.com/debian/ nightly main" > /etc/apt/sources.list.d/yarn.list && \ - apt-get update && \ - apt-get install -y nodejs yarn && \ - npm install -g pnpm - -# curl -L https://www.npmjs.com/install.sh | sh -# npm install -g npm - -RUN echo "=============================================" && \ - echo node $(node --version) && \ - echo npm $(npm --version) && \ - echo yarn $(yarn --version) && \ - echo "=============================================" - -################################################################## -# cleaninig up -################################################################## -RUN apt clean -y && \ - apt-get clean all && \ - apt autoclean -y && \ - rm -rfv /var/lib/apt/lists/* && \ - rm -rfv /var/cache/apt/archives/*.deb && \ - rm -rfv /tmp/* \ No newline at end of file diff --git a/linux/ecosystem/nodejs/outdated/node13/Dockerfile b/linux/ecosystem/nodejs/outdated/node13/Dockerfile deleted file mode 100644 index 6d6204d11..000000000 --- a/linux/ecosystem/nodejs/outdated/node13/Dockerfile +++ /dev/null @@ -1,36 +0,0 @@ -FROM epicmorg/debian:buster -LABEL maintainer="EpicMorg DevTeam, developer@epicm.org" -ARG DEBIAN_FRONTEND=noninteractive - -################################################################## -# Node.js 13.x -################################################################## -RUN groupadd node && \ - useradd --gid node --shell /bin/bash --create-home node - -RUN curl -fsSL https://deb.nodesource.com/setup_13.x | bash - && \ - curl -fsSL https://dl.yarnpkg.com/debian/pubkey.gpg | sudo gpg --dearmor -o /etc/apt/keyrings/yarnpkg.gpg && \ - echo "deb [signed-by=/etc/apt/keyrings/yarnpkg.gpg] https://nightly.yarnpkg.com/debian/ nightly main" > /etc/apt/sources.list.d/yarn.list && \ - apt-get update && \ - apt-get install -y nodejs yarn && \ - npm install -g pnpm - -# curl -L https://www.npmjs.com/install.sh | sh -# npm install -g npm - -RUN echo "=============================================" && \ - echo node $(node --version) && \ - echo npm $(npm --version) && \ - echo yarn $(yarn --version) && \ - echo pnpm $(pnpm --version) && \ - echo "=============================================" - -################################################################## -# cleaninig up -################################################################## -RUN apt clean -y && \ - apt-get clean all && \ - apt autoclean -y && \ - rm -rfv /var/lib/apt/lists/* && \ - rm -rfv /var/cache/apt/archives/*.deb && \ - rm -rfv /tmp/* diff --git a/linux/ecosystem/nodejs/outdated/node14/Dockerfile b/linux/ecosystem/nodejs/outdated/node14/Dockerfile deleted file mode 100644 index 91e7f0602..000000000 --- a/linux/ecosystem/nodejs/outdated/node14/Dockerfile +++ /dev/null @@ -1,37 +0,0 @@ -FROM epicmorg/debian:bullseye -LABEL maintainer="EpicMorg DevTeam, developer@epicm.org" -ARG DEBIAN_FRONTEND=noninteractive - -################################################################## -# Node.js 14.x -################################################################## -RUN groupadd node && \ - useradd --gid node --shell /bin/bash --create-home node - -RUN curl -fsSL https://deb.nodesource.com/setup_14.x | bash - && \ - curl -fsSL https://dl.yarnpkg.com/debian/pubkey.gpg | sudo gpg --dearmor -o /etc/apt/keyrings/yarnpkg.gpg && \ - echo "deb [signed-by=/etc/apt/keyrings/yarnpkg.gpg] https://nightly.yarnpkg.com/debian/ nightly main" > /etc/apt/sources.list.d/yarn.list && \ - apt-get clean && apt-get autoclean && \ - apt-get update && \ - apt-get install -y nodejs yarn && \ - npm install -g pnpm - -# curl -L https://www.npmjs.com/install.sh | sh -# npm install -g npm - -RUN echo "=============================================" && \ - echo node $(node --version) && \ - echo npm $(npm --version) && \ - echo yarn $(yarn --version) && \ - echo pnpm $(pnpm --version) && \ - echo "=============================================" - -################################################################## -# cleaninig up -################################################################## -RUN apt clean -y && \ - apt-get clean all && \ - apt autoclean -y && \ - rm -rfv /var/lib/apt/lists/* && \ - rm -rfv /var/cache/apt/archives/*.deb && \ - rm -rfv /tmp/* \ No newline at end of file diff --git a/linux/ecosystem/nodejs/outdated/node15/Dockerfile b/linux/ecosystem/nodejs/outdated/node15/Dockerfile deleted file mode 100644 index 6ba51cff7..000000000 --- a/linux/ecosystem/nodejs/outdated/node15/Dockerfile +++ /dev/null @@ -1,37 +0,0 @@ -FROM epicmorg/debian:bullseye -LABEL maintainer="EpicMorg DevTeam, developer@epicm.org" -ARG DEBIAN_FRONTEND=noninteractive - -################################################################## -# Node.js 15.x -################################################################## -RUN groupadd node && \ - useradd --gid node --shell /bin/bash --create-home node - -RUN curl -fsSL https://deb.nodesource.com/setup_15.x | bash - && \ - curl -fsSL https://dl.yarnpkg.com/debian/pubkey.gpg | sudo gpg --dearmor -o /etc/apt/keyrings/yarnpkg.gpg && \ - echo "deb [signed-by=/etc/apt/keyrings/yarnpkg.gpg] https://nightly.yarnpkg.com/debian/ nightly main" > /etc/apt/sources.list.d/yarn.list && \ - apt-get clean && apt-get autoclean && \ - apt-get update && \ - apt-get install -y yarn && \ - npm install -g pnpm - -#RUN curl -L https://www.npmjs.com/install.sh | bash && \ -# npm install -g npm - -RUN echo "=============================================" && \ - echo node $(node --version) && \ - echo npm $(npm --version) && \ - echo yarn $(yarn --version) && \ - echo pnpm $(pnpm --version) && \ - echo "=============================================" - -################################################################## -# cleaninig up -################################################################## -RUN apt clean -y && \ - apt-get clean all && \ - apt autoclean -y && \ - rm -rfv /var/lib/apt/lists/* && \ - rm -rfv /var/cache/apt/archives/*.deb && \ - rm -rfv /tmp/* diff --git a/linux/ecosystem/nodejs/outdated/node16/Dockerfile b/linux/ecosystem/nodejs/outdated/node16/Dockerfile deleted file mode 100644 index 5ed347d8b..000000000 --- a/linux/ecosystem/nodejs/outdated/node16/Dockerfile +++ /dev/null @@ -1,37 +0,0 @@ -FROM epicmorg/debian:bullseye -LABEL maintainer="EpicMorg DevTeam, developer@epicm.org" -ARG DEBIAN_FRONTEND=noninteractive - -################################################################## -# Node.js 16.x -################################################################## -RUN groupadd node && \ - useradd --gid node --shell /bin/bash --create-home node - -RUN curl -fsSL https://deb.nodesource.com/setup_16.x | bash - && \ - curl -fsSL https://dl.yarnpkg.com/debian/pubkey.gpg | sudo gpg --dearmor -o /etc/apt/keyrings/yarnpkg.gpg && \ - echo "deb [signed-by=/etc/apt/keyrings/yarnpkg.gpg] https://nightly.yarnpkg.com/debian/ nightly main" > /etc/apt/sources.list.d/yarn.list && \ - apt-get clean && apt-get autoclean && \ - apt-get update && \ - apt-get install -y nodejs yarn && \ - npm install -g pnpm - -# curl -L https://www.npmjs.com/install.sh | sh -# npm install -g npm - -RUN echo "=============================================" && \ - echo node $(node --version) && \ - echo npm $(npm --version) && \ - echo yarn $(yarn --version) && \ - echo pnpm $(pnpm --version) && \ - echo "=============================================" - -################################################################## -# cleaninig up -################################################################## -RUN apt clean -y && \ - apt-get clean all && \ - apt autoclean -y && \ - rm -rfv /var/lib/apt/lists/* && \ - rm -rfv /var/cache/apt/archives/*.deb && \ - rm -rfv /tmp/* \ No newline at end of file diff --git a/linux/ecosystem/nodejs/outdated/node17/Dockerfile b/linux/ecosystem/nodejs/outdated/node17/Dockerfile deleted file mode 100644 index 393be2d4c..000000000 --- a/linux/ecosystem/nodejs/outdated/node17/Dockerfile +++ /dev/null @@ -1,37 +0,0 @@ -FROM epicmorg/debian:bullseye -LABEL maintainer="EpicMorg DevTeam, developer@epicm.org" -ARG DEBIAN_FRONTEND=noninteractive - -################################################################## -# Node.js 17.x -################################################################## -RUN groupadd node && \ - useradd --gid node --shell /bin/bash --create-home node - -RUN curl -fsSL https://deb.nodesource.com/setup_17.x | bash - && \ - curl -fsSL https://dl.yarnpkg.com/debian/pubkey.gpg | sudo gpg --dearmor -o /etc/apt/keyrings/yarnpkg.gpg && \ - echo "deb [signed-by=/etc/apt/keyrings/yarnpkg.gpg] https://nightly.yarnpkg.com/debian/ nightly main" > /etc/apt/sources.list.d/yarn.list && \ - apt-get clean && apt-get autoclean && \ - apt-get update && \ - apt-get install -y nodejs yarn && \ - npm install -g pnpm - -# curl -L https://www.npmjs.com/install.sh | sh -# npm install -g npm - -RUN echo "=============================================" && \ - echo node $(node --version) && \ - echo npm $(npm --version) && \ - echo yarn $(yarn --version) && \ - echo pnpm $(pnpm --version) && \ - echo "=============================================" - -################################################################## -# cleaninig up -################################################################## -RUN apt clean -y && \ - apt-get clean all && \ - apt autoclean -y && \ - rm -rfv /var/lib/apt/lists/* && \ - rm -rfv /var/cache/apt/archives/*.deb && \ - rm -rfv /tmp/* diff --git a/linux/ecosystem/nodejs/outdated/node18/Dockerfile b/linux/ecosystem/nodejs/outdated/node18/Dockerfile deleted file mode 100644 index fc111a509..000000000 --- a/linux/ecosystem/nodejs/outdated/node18/Dockerfile +++ /dev/null @@ -1,37 +0,0 @@ -FROM epicmorg/debian:bullseye -LABEL maintainer="EpicMorg DevTeam, developer@epicm.org" -ARG DEBIAN_FRONTEND=noninteractive - -################################################################## -# Node.js 18.x -################################################################## -RUN groupadd node && \ - useradd --gid node --shell /bin/bash --create-home node - -RUN curl -fsSL https://deb.nodesource.com/setup_18.x | bash - && \ - curl -fsSL https://dl.yarnpkg.com/debian/pubkey.gpg | sudo gpg --dearmor -o /etc/apt/keyrings/yarnpkg.gpg && \ - echo "deb [signed-by=/etc/apt/keyrings/yarnpkg.gpg] https://nightly.yarnpkg.com/debian/ nightly main" > /etc/apt/sources.list.d/yarn.list && \ - apt-get clean && apt-get autoclean && \ - apt-get update && \ - apt-get install -y nodejs yarn && \ - npm install -g pnpm - -# curl -L https://www.npmjs.com/install.sh | sh -# npm install -g npm - -RUN echo "=============================================" && \ - echo node $(node --version) && \ - echo npm $(npm --version) && \ - echo yarn $(yarn --version) && \ - echo pnpm $(pnpm --version) && \ - echo "=============================================" - -################################################################## -# cleaninig up -################################################################## -RUN apt clean -y && \ - apt-get clean all && \ - apt autoclean -y && \ - rm -rfv /var/lib/apt/lists/* && \ - rm -rfv /var/cache/apt/archives/*.deb && \ - rm -rfv /tmp/* \ No newline at end of file diff --git a/linux/ecosystem/nodejs/outdated/node19/Dockerfile b/linux/ecosystem/nodejs/outdated/node19/Dockerfile deleted file mode 100644 index 1f9beaf2a..000000000 --- a/linux/ecosystem/nodejs/outdated/node19/Dockerfile +++ /dev/null @@ -1,37 +0,0 @@ -FROM epicmorg/debian:bullseye -LABEL maintainer="EpicMorg DevTeam, developer@epicm.org" -ARG DEBIAN_FRONTEND=noninteractive - -################################################################## -# Node.js 19.x -################################################################## -RUN groupadd node && \ - useradd --gid node --shell /bin/bash --create-home node - -RUN curl -fsSL https://deb.nodesource.com/setup_19.x | bash - && \ - curl -fsSL https://dl.yarnpkg.com/debian/pubkey.gpg | sudo gpg --dearmor -o /etc/apt/keyrings/yarnpkg.gpg && \ - echo "deb [signed-by=/etc/apt/keyrings/yarnpkg.gpg] https://nightly.yarnpkg.com/debian/ nightly main" > /etc/apt/sources.list.d/yarn.list && \ - apt-get clean && apt-get autoclean && \ - apt-get update && \ - apt-get install -y nodejs yarn && \ - npm install -g pnpm - -# curl -L https://www.npmjs.com/install.sh | sh -# npm install -g npm - -RUN echo "=============================================" && \ - echo node $(node --version) && \ - echo npm $(npm --version) && \ - echo yarn $(yarn --version) && \ - echo pnpm $(pnpm --version) && \ - echo "=============================================" - -################################################################## -# cleaninig up -################################################################## -RUN apt clean -y && \ - apt-get clean all && \ - apt autoclean -y && \ - rm -rfv /var/lib/apt/lists/* && \ - rm -rfv /var/cache/apt/archives/*.deb && \ - rm -rfv /tmp/* diff --git a/linux/ecosystem/nodejs/outdated/node4/Dockerfile b/linux/ecosystem/nodejs/outdated/node4/Dockerfile deleted file mode 100644 index 75b1d507f..000000000 --- a/linux/ecosystem/nodejs/outdated/node4/Dockerfile +++ /dev/null @@ -1,35 +0,0 @@ -FROM epicmorg/debian:buster -LABEL maintainer="EpicMorg DevTeam, developer@epicm.org" -ARG DEBIAN_FRONTEND=noninteractive - -################################################################## -# Node.js 4.x -################################################################## -RUN groupadd node && \ - useradd --gid node --shell /bin/bash --create-home node - -RUN curl -fsSL https://deb.nodesource.com/setup_4.x | bash - && \ - curl -fsSL https://dl.yarnpkg.com/debian/pubkey.gpg | sudo gpg --dearmor -o /etc/apt/keyrings/yarnpkg.gpg && \ - echo "deb [signed-by=/etc/apt/keyrings/yarnpkg.gpg] https://nightly.yarnpkg.com/debian/ nightly main" > /etc/apt/sources.list.d/yarn.list && \ - apt-get update && \ - apt-cache policy nodejs && \ - apt-get install -y nodejs=4.8.7-1nodesource1 yarn - -# curl -L https://www.npmjs.com/install.sh | sh -# npm install -g npm - -RUN echo "=============================================" && \ - echo node $(node --version) && \ - echo npm $(npm --version) && \ - echo yarn $(yarn --version) && \ - echo "=============================================" - -################################################################## -# cleaninig up -################################################################## -RUN apt clean -y && \ - apt-get clean all && \ - apt autoclean -y && \ - rm -rfv /var/lib/apt/lists/* && \ - rm -rfv /var/cache/apt/archives/*.deb && \ - rm -rfv /tmp/* diff --git a/linux/ecosystem/nodejs/outdated/node6/Dockerfile b/linux/ecosystem/nodejs/outdated/node6/Dockerfile deleted file mode 100644 index 5aa29bde4..000000000 --- a/linux/ecosystem/nodejs/outdated/node6/Dockerfile +++ /dev/null @@ -1,35 +0,0 @@ -FROM epicmorg/debian:buster -LABEL maintainer="EpicMorg DevTeam, developer@epicm.org" -ARG DEBIAN_FRONTEND=noninteractive - -################################################################## -# Node.js 6.x -################################################################## -RUN groupadd node && \ - useradd --gid node --shell /bin/bash --create-home node - -RUN curl -fsSL https://deb.nodesource.com/setup_6.x | bash - && \ - curl -fsSL https://dl.yarnpkg.com/debian/pubkey.gpg | sudo gpg --dearmor -o /etc/apt/keyrings/yarnpkg.gpg && \ - echo "deb [signed-by=/etc/apt/keyrings/yarnpkg.gpg] https://nightly.yarnpkg.com/debian/ nightly main" > /etc/apt/sources.list.d/yarn.list && \ - apt-get update && \ - apt-cache policy nodejs && \ - apt-get install -y nodejs=6.14.4-1nodesource1 yarn - -# curl -L https://www.npmjs.com/install.sh | sh -# npm install -g npm - -RUN echo "=============================================" && \ - echo node $(node --version) && \ - echo npm $(npm --version) && \ - echo yarn $(yarn --version) && \ - echo "=============================================" - -################################################################## -# cleaninig up -################################################################## -RUN apt clean -y && \ - apt-get clean all && \ - apt autoclean -y && \ - rm -rfv /var/lib/apt/lists/* && \ - rm -rfv /var/cache/apt/archives/*.deb && \ - rm -rfv /tmp/* diff --git a/linux/ecosystem/nodejs/outdated/node8/Dockerfile b/linux/ecosystem/nodejs/outdated/node8/Dockerfile deleted file mode 100644 index e4c07208e..000000000 --- a/linux/ecosystem/nodejs/outdated/node8/Dockerfile +++ /dev/null @@ -1,35 +0,0 @@ -FROM epicmorg/debian:buster -LABEL maintainer="EpicMorg DevTeam, developer@epicm.org" -ARG DEBIAN_FRONTEND=noninteractive - -################################################################## -# Node.js 8.x -################################################################## -RUN groupadd node && \ - useradd --gid node --shell /bin/bash --create-home node - -RUN curl -fsSL https://deb.nodesource.com/setup_8.x | bash - && \ - curl -fsSL https://dl.yarnpkg.com/debian/pubkey.gpg | sudo gpg --dearmor -o /etc/apt/keyrings/yarnpkg.gpg && \ - echo "deb [signed-by=/etc/apt/keyrings/yarnpkg.gpg] https://nightly.yarnpkg.com/debian/ nightly main" > /etc/apt/sources.list.d/yarn.list && \ - apt-get update && \ - apt-cache policy nodejs && \ - apt-get install -y nodejs=8.17.0-1nodesource1 yarn - -# curl -L https://www.npmjs.com/install.sh | sh -# npm install -g npm - -RUN echo "=============================================" && \ - echo node $(node --version) && \ - echo npm $(npm --version) && \ - echo yarn $(yarn --version) && \ - echo "=============================================" - -################################################################## -# cleaninig up -################################################################## -RUN apt clean -y && \ - apt-get clean all && \ - apt autoclean -y && \ - rm -rfv /var/lib/apt/lists/* && \ - rm -rfv /var/cache/apt/archives/*.deb && \ - rm -rfv /tmp/* diff --git a/linux/ecosystem/php/php7.0/Dockerfile.nodejs b/linux/ecosystem/php/php7.0/Dockerfile.nodejs new file mode 100644 index 000000000..d49e508dd --- /dev/null +++ b/linux/ecosystem/php/php7.0/Dockerfile.nodejs @@ -0,0 +1,44 @@ +FROM epicmorg/php:php7.0 +LABEL maintainer="EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +ARG K_NODE_MAJOR_VERSION=20 +ARG K_NODE_VERSION=${K_NODE_MAJOR_VERSION}.15.0 +ARG K_NODE_URL=https://nodejs.org/dist/v${K_NODE_VERSION}/node-v${K_NODE_VERSION}-linux-x64.tar.gz +ARG K_NODE_HEADERS_URL=https://nodejs.org/dist/v${K_NODE_VERSION}/node-v${K_NODE_VERSION}-headers.tar.gz + +################################################################## +# Node.js 20.x +################################################################## +RUN groupadd -g 1337 node && \ + useradd -u 1337 --gid node --shell /bin/bash --create-home node + +RUN curl --user-agent "Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Firefox/81.0" --location ${K_NODE_URL}?$(date +%s) \ + --header 'Cache-Control: no-cache, no-store' \ + --header 'Pragma: no-cache' | tar xzv --strip-components=1 --directory /usr/local/ && \ + rm -rfv /usr/local/CHANGELOG.md /usr/local/LICENSE /usr/local/README.md + +RUN curl --user-agent "Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Firefox/81.0" --location ${K_NODE_HEADERS_URL}?$(date +%s) \ + --header 'Cache-Control: no-cache, no-store' \ + --header 'Pragma: no-cache' | tar xzv --strip-components=1 --directory /usr/local/ + +RUN npm install -g pnpm yarn + +################################################################## +# Version after install +################################################################## +RUN echo "=============================================" && \ + echo node $(node --version) && \ + echo npm $(npm --version) && \ + echo yarn $(yarn --version) && \ + echo pnpm $(pnpm --version) && \ + echo "=============================================" + +################################################################## +# cleaninig up +################################################################## +RUN apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb && \ + rm -rfv /tmp/* diff --git a/linux/ecosystem/php/php7.0/docker-compose.yml b/linux/ecosystem/php/php7.0/docker-compose.yml index 39d9f55e7..7b1655afc 100644 --- a/linux/ecosystem/php/php7.0/docker-compose.yml +++ b/linux/ecosystem/php/php7.0/docker-compose.yml @@ -4,3 +4,8 @@ services: image: "epicmorg/php:php7.0" build: context: . + app-nodejs: + image: "epicmorg/php:php7.0-nodejs" + build: + context: . + dockerfile: ./Dockerfile.nodejs diff --git a/linux/ecosystem/php/php7.1/Dockerfile.nodejs b/linux/ecosystem/php/php7.1/Dockerfile.nodejs new file mode 100644 index 000000000..36fda1a6d --- /dev/null +++ b/linux/ecosystem/php/php7.1/Dockerfile.nodejs @@ -0,0 +1,44 @@ +FROM epicmorg/php:php7.1 +LABEL maintainer="EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +ARG K_NODE_MAJOR_VERSION=20 +ARG K_NODE_VERSION=${K_NODE_MAJOR_VERSION}.15.0 +ARG K_NODE_URL=https://nodejs.org/dist/v${K_NODE_VERSION}/node-v${K_NODE_VERSION}-linux-x64.tar.gz +ARG K_NODE_HEADERS_URL=https://nodejs.org/dist/v${K_NODE_VERSION}/node-v${K_NODE_VERSION}-headers.tar.gz + +################################################################## +# Node.js 20.x +################################################################## +RUN groupadd -g 1337 node && \ + useradd -u 1337 --gid node --shell /bin/bash --create-home node + +RUN curl --user-agent "Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Firefox/81.0" --location ${K_NODE_URL}?$(date +%s) \ + --header 'Cache-Control: no-cache, no-store' \ + --header 'Pragma: no-cache' | tar xzv --strip-components=1 --directory /usr/local/ && \ + rm -rfv /usr/local/CHANGELOG.md /usr/local/LICENSE /usr/local/README.md + +RUN curl --user-agent "Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Firefox/81.0" --location ${K_NODE_HEADERS_URL}?$(date +%s) \ + --header 'Cache-Control: no-cache, no-store' \ + --header 'Pragma: no-cache' | tar xzv --strip-components=1 --directory /usr/local/ + +RUN npm install -g pnpm yarn + +################################################################## +# Version after install +################################################################## +RUN echo "=============================================" && \ + echo node $(node --version) && \ + echo npm $(npm --version) && \ + echo yarn $(yarn --version) && \ + echo pnpm $(pnpm --version) && \ + echo "=============================================" + +################################################################## +# cleaninig up +################################################################## +RUN apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb && \ + rm -rfv /tmp/* diff --git a/linux/ecosystem/php/php7.1/docker-compose.yml b/linux/ecosystem/php/php7.1/docker-compose.yml index be7f4b3cb..5e4723266 100644 --- a/linux/ecosystem/php/php7.1/docker-compose.yml +++ b/linux/ecosystem/php/php7.1/docker-compose.yml @@ -4,3 +4,8 @@ services: image: "epicmorg/php:php7.1" build: context: . + app-nodejs: + image: "epicmorg/php:php7.1-nodejs" + build: + context: . + dockerfile: ./Dockerfile.nodejs diff --git a/linux/ecosystem/php/php7.2/Dockerfile.nodejs b/linux/ecosystem/php/php7.2/Dockerfile.nodejs new file mode 100644 index 000000000..aa1bb6b80 --- /dev/null +++ b/linux/ecosystem/php/php7.2/Dockerfile.nodejs @@ -0,0 +1,44 @@ +FROM epicmorg/php:php7.2 +LABEL maintainer="EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +ARG K_NODE_MAJOR_VERSION=20 +ARG K_NODE_VERSION=${K_NODE_MAJOR_VERSION}.15.0 +ARG K_NODE_URL=https://nodejs.org/dist/v${K_NODE_VERSION}/node-v${K_NODE_VERSION}-linux-x64.tar.gz +ARG K_NODE_HEADERS_URL=https://nodejs.org/dist/v${K_NODE_VERSION}/node-v${K_NODE_VERSION}-headers.tar.gz + +################################################################## +# Node.js 20.x +################################################################## +RUN groupadd -g 1337 node && \ + useradd -u 1337 --gid node --shell /bin/bash --create-home node + +RUN curl --user-agent "Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Firefox/81.0" --location ${K_NODE_URL}?$(date +%s) \ + --header 'Cache-Control: no-cache, no-store' \ + --header 'Pragma: no-cache' | tar xzv --strip-components=1 --directory /usr/local/ && \ + rm -rfv /usr/local/CHANGELOG.md /usr/local/LICENSE /usr/local/README.md + +RUN curl --user-agent "Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Firefox/81.0" --location ${K_NODE_HEADERS_URL}?$(date +%s) \ + --header 'Cache-Control: no-cache, no-store' \ + --header 'Pragma: no-cache' | tar xzv --strip-components=1 --directory /usr/local/ + +RUN npm install -g pnpm yarn + +################################################################## +# Version after install +################################################################## +RUN echo "=============================================" && \ + echo node $(node --version) && \ + echo npm $(npm --version) && \ + echo yarn $(yarn --version) && \ + echo pnpm $(pnpm --version) && \ + echo "=============================================" + +################################################################## +# cleaninig up +################################################################## +RUN apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb && \ + rm -rfv /tmp/* diff --git a/linux/ecosystem/php/php7.2/docker-compose.yml b/linux/ecosystem/php/php7.2/docker-compose.yml index 29c690afe..5514d9d2f 100644 --- a/linux/ecosystem/php/php7.2/docker-compose.yml +++ b/linux/ecosystem/php/php7.2/docker-compose.yml @@ -4,3 +4,8 @@ services: image: "epicmorg/php:php7.2" build: context: . + app-nodejs: + image: "epicmorg/php:php7.2-nodejs" + build: + context: . + dockerfile: ./Dockerfile.nodejs diff --git a/linux/ecosystem/php/php7.3/Dockerfile.nodejs b/linux/ecosystem/php/php7.3/Dockerfile.nodejs new file mode 100644 index 000000000..4fa6ab08b --- /dev/null +++ b/linux/ecosystem/php/php7.3/Dockerfile.nodejs @@ -0,0 +1,44 @@ +FROM epicmorg/php:php7.3 +LABEL maintainer="EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +ARG K_NODE_MAJOR_VERSION=20 +ARG K_NODE_VERSION=${K_NODE_MAJOR_VERSION}.15.0 +ARG K_NODE_URL=https://nodejs.org/dist/v${K_NODE_VERSION}/node-v${K_NODE_VERSION}-linux-x64.tar.gz +ARG K_NODE_HEADERS_URL=https://nodejs.org/dist/v${K_NODE_VERSION}/node-v${K_NODE_VERSION}-headers.tar.gz + +################################################################## +# Node.js 20.x +################################################################## +RUN groupadd -g 1337 node && \ + useradd -u 1337 --gid node --shell /bin/bash --create-home node + +RUN curl --user-agent "Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Firefox/81.0" --location ${K_NODE_URL}?$(date +%s) \ + --header 'Cache-Control: no-cache, no-store' \ + --header 'Pragma: no-cache' | tar xzv --strip-components=1 --directory /usr/local/ && \ + rm -rfv /usr/local/CHANGELOG.md /usr/local/LICENSE /usr/local/README.md + +RUN curl --user-agent "Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Firefox/81.0" --location ${K_NODE_HEADERS_URL}?$(date +%s) \ + --header 'Cache-Control: no-cache, no-store' \ + --header 'Pragma: no-cache' | tar xzv --strip-components=1 --directory /usr/local/ + +RUN npm install -g pnpm yarn + +################################################################## +# Version after install +################################################################## +RUN echo "=============================================" && \ + echo node $(node --version) && \ + echo npm $(npm --version) && \ + echo yarn $(yarn --version) && \ + echo pnpm $(pnpm --version) && \ + echo "=============================================" + +################################################################## +# cleaninig up +################################################################## +RUN apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb && \ + rm -rfv /tmp/* diff --git a/linux/ecosystem/php/php7.3/docker-compose.yml b/linux/ecosystem/php/php7.3/docker-compose.yml index 10bf69783..aee3306db 100644 --- a/linux/ecosystem/php/php7.3/docker-compose.yml +++ b/linux/ecosystem/php/php7.3/docker-compose.yml @@ -4,3 +4,8 @@ services: image: "epicmorg/php:php7.3" build: context: . + app-nodejs: + image: "epicmorg/php:php7.3-nodejs" + build: + context: . + dockerfile: ./Dockerfile.nodejs diff --git a/linux/ecosystem/php/php7.4/Dockerfile.nodejs b/linux/ecosystem/php/php7.4/Dockerfile.nodejs new file mode 100644 index 000000000..6fdee146f --- /dev/null +++ b/linux/ecosystem/php/php7.4/Dockerfile.nodejs @@ -0,0 +1,44 @@ +FROM epicmorg/php:php7.4 +LABEL maintainer="EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +ARG K_NODE_MAJOR_VERSION=20 +ARG K_NODE_VERSION=${K_NODE_MAJOR_VERSION}.15.0 +ARG K_NODE_URL=https://nodejs.org/dist/v${K_NODE_VERSION}/node-v${K_NODE_VERSION}-linux-x64.tar.gz +ARG K_NODE_HEADERS_URL=https://nodejs.org/dist/v${K_NODE_VERSION}/node-v${K_NODE_VERSION}-headers.tar.gz + +################################################################## +# Node.js 20.x +################################################################## +RUN groupadd -g 1337 node && \ + useradd -u 1337 --gid node --shell /bin/bash --create-home node + +RUN curl --user-agent "Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Firefox/81.0" --location ${K_NODE_URL}?$(date +%s) \ + --header 'Cache-Control: no-cache, no-store' \ + --header 'Pragma: no-cache' | tar xzv --strip-components=1 --directory /usr/local/ && \ + rm -rfv /usr/local/CHANGELOG.md /usr/local/LICENSE /usr/local/README.md + +RUN curl --user-agent "Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Firefox/81.0" --location ${K_NODE_HEADERS_URL}?$(date +%s) \ + --header 'Cache-Control: no-cache, no-store' \ + --header 'Pragma: no-cache' | tar xzv --strip-components=1 --directory /usr/local/ + +RUN npm install -g pnpm yarn + +################################################################## +# Version after install +################################################################## +RUN echo "=============================================" && \ + echo node $(node --version) && \ + echo npm $(npm --version) && \ + echo yarn $(yarn --version) && \ + echo pnpm $(pnpm --version) && \ + echo "=============================================" + +################################################################## +# cleaninig up +################################################################## +RUN apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb && \ + rm -rfv /tmp/* diff --git a/linux/ecosystem/php/php7.4/docker-compose.yml b/linux/ecosystem/php/php7.4/docker-compose.yml index df083633d..da7b4208c 100644 --- a/linux/ecosystem/php/php7.4/docker-compose.yml +++ b/linux/ecosystem/php/php7.4/docker-compose.yml @@ -4,3 +4,8 @@ services: image: "epicmorg/php:php7.4" build: context: . + app-nodejs: + image: "epicmorg/php:php7.4-nodejs" + build: + context: . + dockerfile: ./Dockerfile.nodejs diff --git a/linux/ecosystem/php/php8.0/Dockerfile.nodejs b/linux/ecosystem/php/php8.0/Dockerfile.nodejs new file mode 100644 index 000000000..3601c151f --- /dev/null +++ b/linux/ecosystem/php/php8.0/Dockerfile.nodejs @@ -0,0 +1,44 @@ +FROM epicmorg/php:php8.0 +LABEL maintainer="EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +ARG K_NODE_MAJOR_VERSION=20 +ARG K_NODE_VERSION=${K_NODE_MAJOR_VERSION}.15.0 +ARG K_NODE_URL=https://nodejs.org/dist/v${K_NODE_VERSION}/node-v${K_NODE_VERSION}-linux-x64.tar.gz +ARG K_NODE_HEADERS_URL=https://nodejs.org/dist/v${K_NODE_VERSION}/node-v${K_NODE_VERSION}-headers.tar.gz + +################################################################## +# Node.js 20.x +################################################################## +RUN groupadd -g 1337 node && \ + useradd -u 1337 --gid node --shell /bin/bash --create-home node + +RUN curl --user-agent "Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Firefox/81.0" --location ${K_NODE_URL}?$(date +%s) \ + --header 'Cache-Control: no-cache, no-store' \ + --header 'Pragma: no-cache' | tar xzv --strip-components=1 --directory /usr/local/ && \ + rm -rfv /usr/local/CHANGELOG.md /usr/local/LICENSE /usr/local/README.md + +RUN curl --user-agent "Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Firefox/81.0" --location ${K_NODE_HEADERS_URL}?$(date +%s) \ + --header 'Cache-Control: no-cache, no-store' \ + --header 'Pragma: no-cache' | tar xzv --strip-components=1 --directory /usr/local/ + +RUN npm install -g pnpm yarn + +################################################################## +# Version after install +################################################################## +RUN echo "=============================================" && \ + echo node $(node --version) && \ + echo npm $(npm --version) && \ + echo yarn $(yarn --version) && \ + echo pnpm $(pnpm --version) && \ + echo "=============================================" + +################################################################## +# cleaninig up +################################################################## +RUN apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb && \ + rm -rfv /tmp/* diff --git a/linux/ecosystem/php/php8.0/docker-compose.yml b/linux/ecosystem/php/php8.0/docker-compose.yml index a54a988b7..8c47536a0 100644 --- a/linux/ecosystem/php/php8.0/docker-compose.yml +++ b/linux/ecosystem/php/php8.0/docker-compose.yml @@ -4,3 +4,8 @@ services: image: "epicmorg/php:php8.0" build: context: . + app-nodejs: + image: "epicmorg/php:php8.0-nodejs" + build: + context: . + dockerfile: ./Dockerfile.nodejs diff --git a/linux/ecosystem/php/php8.1/Dockerfile.nodejs b/linux/ecosystem/php/php8.1/Dockerfile.nodejs new file mode 100644 index 000000000..7447dde4a --- /dev/null +++ b/linux/ecosystem/php/php8.1/Dockerfile.nodejs @@ -0,0 +1,44 @@ +FROM epicmorg/php:php8.2 +LABEL maintainer="EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +ARG K_NODE_MAJOR_VERSION=20 +ARG K_NODE_VERSION=${K_NODE_MAJOR_VERSION}.15.0 +ARG K_NODE_URL=https://nodejs.org/dist/v${K_NODE_VERSION}/node-v${K_NODE_VERSION}-linux-x64.tar.gz +ARG K_NODE_HEADERS_URL=https://nodejs.org/dist/v${K_NODE_VERSION}/node-v${K_NODE_VERSION}-headers.tar.gz + +################################################################## +# Node.js 20.x +################################################################## +RUN groupadd -g 1337 node && \ + useradd -u 1337 --gid node --shell /bin/bash --create-home node + +RUN curl --user-agent "Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Firefox/81.0" --location ${K_NODE_URL}?$(date +%s) \ + --header 'Cache-Control: no-cache, no-store' \ + --header 'Pragma: no-cache' | tar xzv --strip-components=1 --directory /usr/local/ && \ + rm -rfv /usr/local/CHANGELOG.md /usr/local/LICENSE /usr/local/README.md + +RUN curl --user-agent "Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Firefox/81.0" --location ${K_NODE_HEADERS_URL}?$(date +%s) \ + --header 'Cache-Control: no-cache, no-store' \ + --header 'Pragma: no-cache' | tar xzv --strip-components=1 --directory /usr/local/ + +RUN npm install -g pnpm yarn + +################################################################## +# Version after install +################################################################## +RUN echo "=============================================" && \ + echo node $(node --version) && \ + echo npm $(npm --version) && \ + echo yarn $(yarn --version) && \ + echo pnpm $(pnpm --version) && \ + echo "=============================================" + +################################################################## +# cleaninig up +################################################################## +RUN apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb && \ + rm -rfv /tmp/* diff --git a/linux/ecosystem/php/php8.1/docker-compose.yml b/linux/ecosystem/php/php8.1/docker-compose.yml index 693134f49..073f6b4e3 100644 --- a/linux/ecosystem/php/php8.1/docker-compose.yml +++ b/linux/ecosystem/php/php8.1/docker-compose.yml @@ -4,3 +4,8 @@ services: image: "epicmorg/php:php8.1" build: context: . + app-nodejs: + image: "epicmorg/php:php8.1-nodejs" + build: + context: . + dockerfile: ./Dockerfile.nodejs diff --git a/linux/ecosystem/php/php8.2/Dockerfile.nodejs b/linux/ecosystem/php/php8.2/Dockerfile.nodejs new file mode 100644 index 000000000..7447dde4a --- /dev/null +++ b/linux/ecosystem/php/php8.2/Dockerfile.nodejs @@ -0,0 +1,44 @@ +FROM epicmorg/php:php8.2 +LABEL maintainer="EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +ARG K_NODE_MAJOR_VERSION=20 +ARG K_NODE_VERSION=${K_NODE_MAJOR_VERSION}.15.0 +ARG K_NODE_URL=https://nodejs.org/dist/v${K_NODE_VERSION}/node-v${K_NODE_VERSION}-linux-x64.tar.gz +ARG K_NODE_HEADERS_URL=https://nodejs.org/dist/v${K_NODE_VERSION}/node-v${K_NODE_VERSION}-headers.tar.gz + +################################################################## +# Node.js 20.x +################################################################## +RUN groupadd -g 1337 node && \ + useradd -u 1337 --gid node --shell /bin/bash --create-home node + +RUN curl --user-agent "Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Firefox/81.0" --location ${K_NODE_URL}?$(date +%s) \ + --header 'Cache-Control: no-cache, no-store' \ + --header 'Pragma: no-cache' | tar xzv --strip-components=1 --directory /usr/local/ && \ + rm -rfv /usr/local/CHANGELOG.md /usr/local/LICENSE /usr/local/README.md + +RUN curl --user-agent "Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Firefox/81.0" --location ${K_NODE_HEADERS_URL}?$(date +%s) \ + --header 'Cache-Control: no-cache, no-store' \ + --header 'Pragma: no-cache' | tar xzv --strip-components=1 --directory /usr/local/ + +RUN npm install -g pnpm yarn + +################################################################## +# Version after install +################################################################## +RUN echo "=============================================" && \ + echo node $(node --version) && \ + echo npm $(npm --version) && \ + echo yarn $(yarn --version) && \ + echo pnpm $(pnpm --version) && \ + echo "=============================================" + +################################################################## +# cleaninig up +################################################################## +RUN apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb && \ + rm -rfv /tmp/* diff --git a/linux/ecosystem/php/php8.2/docker-compose.yml b/linux/ecosystem/php/php8.2/docker-compose.yml index 74da2d211..fb0cfcf29 100644 --- a/linux/ecosystem/php/php8.2/docker-compose.yml +++ b/linux/ecosystem/php/php8.2/docker-compose.yml @@ -4,3 +4,8 @@ services: image: "epicmorg/php:php8.2" build: context: . + app-nodejs: + image: "epicmorg/php:php8.2-nodejs" + build: + context: . + dockerfile: ./Dockerfile.nodejs diff --git a/linux/ecosystem/php/php8.3/Dockerfile.nodejs b/linux/ecosystem/php/php8.3/Dockerfile.nodejs new file mode 100644 index 000000000..8878542a5 --- /dev/null +++ b/linux/ecosystem/php/php8.3/Dockerfile.nodejs @@ -0,0 +1,44 @@ +FROM epicmorg/php:php8.3 +LABEL maintainer="EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +ARG K_NODE_MAJOR_VERSION=20 +ARG K_NODE_VERSION=${K_NODE_MAJOR_VERSION}.15.0 +ARG K_NODE_URL=https://nodejs.org/dist/v${K_NODE_VERSION}/node-v${K_NODE_VERSION}-linux-x64.tar.gz +ARG K_NODE_HEADERS_URL=https://nodejs.org/dist/v${K_NODE_VERSION}/node-v${K_NODE_VERSION}-headers.tar.gz + +################################################################## +# Node.js 20.x +################################################################## +RUN groupadd -g 1337 node && \ + useradd -u 1337 --gid node --shell /bin/bash --create-home node + +RUN curl --user-agent "Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Firefox/81.0" --location ${K_NODE_URL}?$(date +%s) \ + --header 'Cache-Control: no-cache, no-store' \ + --header 'Pragma: no-cache' | tar xzv --strip-components=1 --directory /usr/local/ && \ + rm -rfv /usr/local/CHANGELOG.md /usr/local/LICENSE /usr/local/README.md + +RUN curl --user-agent "Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Firefox/81.0" --location ${K_NODE_HEADERS_URL}?$(date +%s) \ + --header 'Cache-Control: no-cache, no-store' \ + --header 'Pragma: no-cache' | tar xzv --strip-components=1 --directory /usr/local/ + +RUN npm install -g pnpm yarn + +################################################################## +# Version after install +################################################################## +RUN echo "=============================================" && \ + echo node $(node --version) && \ + echo npm $(npm --version) && \ + echo yarn $(yarn --version) && \ + echo pnpm $(pnpm --version) && \ + echo "=============================================" + +################################################################## +# cleaninig up +################################################################## +RUN apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb && \ + rm -rfv /tmp/* diff --git a/linux/ecosystem/php/php8.3/docker-compose.yml b/linux/ecosystem/php/php8.3/docker-compose.yml index f0f26a70f..f1da60834 100644 --- a/linux/ecosystem/php/php8.3/docker-compose.yml +++ b/linux/ecosystem/php/php8.3/docker-compose.yml @@ -4,3 +4,8 @@ services: image: "epicmorg/php:php8.3" build: context: . + app-nodejs: + image: "epicmorg/php:php8.3-nodejs" + build: + context: . + dockerfile: ./Dockerfile.nodejs diff --git a/linux/ecosystem/postgres/10/Dockerfile b/linux/ecosystem/postgres/10/Dockerfile index 73a95492e..a6671aed0 100644 --- a/linux/ecosystem/postgres/10/Dockerfile +++ b/linux/ecosystem/postgres/10/Dockerfile @@ -6,7 +6,7 @@ ARG DEBIAN_FRONTEND=noninteractive # add our user and group first to make sure their IDs get assigned consistently, regardless of whatever dependencies get added #################################################################################################################################### -RUN groupadd -r postgres && useradd -r -g postgres postgres +RUN groupadd -r postgres && useradd -m -r -g postgres -s /bin/bash postgres #################################################################################################################################### # make the "en_US.UTF-8" locale so postgres will be utf-8 enabled by default @@ -16,8 +16,6 @@ RUN apt-get update && apt-get install -y locales && rm -rf /var/lib/apt/lists/* && localedef -i en_US -c -f UTF-8 -A /usr/share/locale/locale.alias en_US.UTF-8 ENV LANG en_US.utf8 -#RUN apt-key adv --keyserver keyserver.ubuntu.com --recv-keys B97B0AFCAA1A47F044F244A07FCC7D46ACCC4CF8 - #################################################################################################################################### # http://apt.postgresql.org/pub/repos/apt/pool/10/p/postgresql-10/ #################################################################################################################################### diff --git a/linux/ecosystem/postgres/11/Dockerfile b/linux/ecosystem/postgres/11/Dockerfile index d66e77b07..d548647a7 100644 --- a/linux/ecosystem/postgres/11/Dockerfile +++ b/linux/ecosystem/postgres/11/Dockerfile @@ -6,7 +6,7 @@ ARG DEBIAN_FRONTEND=noninteractive # add our user and group first to make sure their IDs get assigned consistently, regardless of whatever dependencies get added #################################################################################################################################### -RUN groupadd -r postgres && useradd -r -g postgres postgres +RUN groupadd -r postgres && useradd -m -r -g postgres -s /bin/bash postgres #################################################################################################################################### # make the "en_US.UTF-8" locale so postgres will be utf-8 enabled by default @@ -16,8 +16,6 @@ RUN apt-get update && apt-get install -y locales && rm -rf /var/lib/apt/lists/* && localedef -i en_US -c -f UTF-8 -A /usr/share/locale/locale.alias en_US.UTF-8 ENV LANG en_US.utf8 -#RUN apt-key adv --keyserver keyserver.ubuntu.com --recv-keys B97B0AFCAA1A47F044F244A07FCC7D46ACCC4CF8 - #################################################################################################################################### # http://apt.postgresql.org/pub/repos/apt/pool/11/p/postgresql-11/ #################################################################################################################################### @@ -60,7 +58,7 @@ RUN apt-get update \ postgresql-$PG_MAJOR-set-user \ postgresql-$PG_MAJOR-semver \ postgresql-$PG_MAJOR-rum \ - postgresql-$PG_MAJOR-roaringbitmap \ +# postgresql-$PG_MAJOR-roaringbitmap \ postgresql-$PG_MAJOR-repmgr \ postgresql-$PG_MAJOR-repack \ postgresql-$PG_MAJOR-rdkit \ @@ -90,8 +88,8 @@ RUN apt-get update \ postgresql-$PG_MAJOR-pgq3 \ postgresql-$PG_MAJOR-pgq-node \ postgresql-$PG_MAJOR-pgpool2 \ - postgresql-$PG_MAJOR-pgpcre \ - postgresql-$PG_MAJOR-pgmp \ +# postgresql-$PG_MAJOR-pgpcre \ +# postgresql-$PG_MAJOR-pgmp \ postgresql-$PG_MAJOR-pgmemcache \ postgresql-$PG_MAJOR-pglogical-ticker \ postgresql-$PG_MAJOR-pglogical \ @@ -112,7 +110,7 @@ RUN apt-get update \ postgresql-$PG_MAJOR-pg-catcheck \ postgresql-$PG_MAJOR-periods \ postgresql-$PG_MAJOR-partman \ - postgresql-$PG_MAJOR-orafce \ +# postgresql-$PG_MAJOR-orafce \ postgresql-$PG_MAJOR-oracle-fdw \ postgresql-$PG_MAJOR-omnidb \ postgresql-$PG_MAJOR-numeral \ @@ -124,14 +122,14 @@ RUN apt-get update \ postgresql-$PG_MAJOR-ip4r \ postgresql-$PG_MAJOR-icu-ext \ postgresql-$PG_MAJOR-hypopg \ - postgresql-$PG_MAJOR-http \ +# postgresql-$PG_MAJOR-http \ postgresql-$PG_MAJOR-hll \ # postgresql-$PG_MAJOR-h3 \ postgresql-$PG_MAJOR-first-last-agg \ postgresql-$PG_MAJOR-extra-window-functions \ postgresql-$PG_MAJOR-dirtyread \ postgresql-$PG_MAJOR-decoderbufs \ - postgresql-$PG_MAJOR-debversion \ +# postgresql-$PG_MAJOR-debversion \ postgresql-$PG_MAJOR-cron \ # postgresql-$PG_MAJOR-credcheck \ postgresql-$PG_MAJOR-bgw-replstatus \ diff --git a/linux/ecosystem/postgres/12/Dockerfile b/linux/ecosystem/postgres/12/Dockerfile index 73cd357e1..cfafcd645 100644 --- a/linux/ecosystem/postgres/12/Dockerfile +++ b/linux/ecosystem/postgres/12/Dockerfile @@ -6,7 +6,7 @@ ARG DEBIAN_FRONTEND=noninteractive # add our user and group first to make sure their IDs get assigned consistently, regardless of whatever dependencies get added #################################################################################################################################### -RUN groupadd -r postgres && useradd -r -g postgres postgres +RUN groupadd -r postgres && useradd -m -r -g postgres -s /bin/bash postgres #################################################################################################################################### # make the "en_US.UTF-8" locale so postgres will be utf-8 enabled by default @@ -16,19 +16,21 @@ RUN apt-get update && apt-get install -y locales && rm -rf /var/lib/apt/lists/* && localedef -i en_US -c -f UTF-8 -A /usr/share/locale/locale.alias en_US.UTF-8 ENV LANG en_US.utf8 -#RUN apt-key adv --keyserver keyserver.ubuntu.com --recv-keys B97B0AFCAA1A47F044F244A07FCC7D46ACCC4CF8 - #################################################################################################################################### # http://apt.postgresql.org/pub/repos/apt/pool/12/p/postgresql-12/ +# https://docs.timescale.com/self-hosted/latest/upgrades/upgrade-pg/ #################################################################################################################################### ENV PG_MAJOR 12 ENV PG_STATS 2.1 RUN install -d /usr/share/postgresql-common/pgdg && \ + install -d /usr/share/timescaledb-common/gpg && \ curl -o /usr/share/postgresql-common/pgdg/apt.postgresql.org.asc --fail https://www.postgresql.org/media/keys/ACCC4CF8.asc && \ echo 'deb [signed-by=/usr/share/postgresql-common/pgdg/apt.postgresql.org.asc] http://apt.postgresql.org/pub/repos/apt/ bookworm-pgdg main' $PG_MAJOR > /etc/apt/sources.list.d/pgdg.list && \ echo 'deb [signed-by=/usr/share/postgresql-common/pgdg/apt.postgresql.org.asc] http://apt.postgresql.org/pub/repos/apt/ bookworm-pgdg-snapshot main' $PG_MAJOR >> /etc/apt/sources.list.d/pgdg.list && \ - echo 'deb [signed-by=/usr/share/postgresql-common/pgdg/apt.postgresql.org.asc] http://apt.postgresql.org/pub/repos/apt/ bookworm-pgdg-testing main' $PG_MAJOR >> /etc/apt/sources.list.d/pgdg.list + echo 'deb [signed-by=/usr/share/postgresql-common/pgdg/apt.postgresql.org.asc] http://apt.postgresql.org/pub/repos/apt/ bookworm-pgdg-testing main' $PG_MAJOR >> /etc/apt/sources.list.d/pgdg.list && \ + curl -fsSL https://packagecloud.io/timescale/timescaledb/gpgkey | gpg --dearmor > /usr/share/timescaledb-common/gpg/apt.timescaledb.gpg && \ + echo 'deb [signed-by=/usr/share/timescaledb-common/gpg/apt.timescaledb.gpg] https://packagecloud.io/timescale/timescaledb/debian/ bookworm main' | sudo tee /etc/apt/sources.list.d/timescaledb.list RUN apt-get update \ && apt-get install -y postgresql-common \ @@ -155,6 +157,7 @@ RUN apt-get update \ postgresql-client-14 \ postgresql-client-15 \ postgresql-client-16 \ + timescaledb-2-postgresql-$PG_MAJOR \ && rm -rf /var/lib/apt/lists/* RUN cd /tmp \ diff --git a/linux/ecosystem/postgres/13/Dockerfile b/linux/ecosystem/postgres/13/Dockerfile index e69910b99..64d65a6de 100644 --- a/linux/ecosystem/postgres/13/Dockerfile +++ b/linux/ecosystem/postgres/13/Dockerfile @@ -6,7 +6,7 @@ ARG DEBIAN_FRONTEND=noninteractive # add our user and group first to make sure their IDs get assigned consistently, regardless of whatever dependencies get added #################################################################################################################################### -RUN groupadd -r postgres && useradd -r -g postgres postgres +RUN groupadd -r postgres && useradd -m -r -g postgres -s /bin/bash postgres #################################################################################################################################### # make the "en_US.UTF-8" locale so postgres will be utf-8 enabled by default @@ -16,19 +16,21 @@ RUN apt-get update && apt-get install -y locales && rm -rf /var/lib/apt/lists/* && localedef -i en_US -c -f UTF-8 -A /usr/share/locale/locale.alias en_US.UTF-8 ENV LANG en_US.utf8 -#RUN apt-key adv --keyserver keyserver.ubuntu.com --recv-keys B97B0AFCAA1A47F044F244A07FCC7D46ACCC4CF8 - #################################################################################################################################### # http://apt.postgresql.org/pub/repos/apt/pool/13/p/postgresql-13/ +# https://docs.timescale.com/self-hosted/latest/upgrades/upgrade-pg/ #################################################################################################################################### ENV PG_MAJOR 13 ENV PG_STATS 2.1 RUN install -d /usr/share/postgresql-common/pgdg && \ + install -d /usr/share/timescaledb-common/gpg && \ curl -o /usr/share/postgresql-common/pgdg/apt.postgresql.org.asc --fail https://www.postgresql.org/media/keys/ACCC4CF8.asc && \ echo 'deb [signed-by=/usr/share/postgresql-common/pgdg/apt.postgresql.org.asc] http://apt.postgresql.org/pub/repos/apt/ bookworm-pgdg main' $PG_MAJOR > /etc/apt/sources.list.d/pgdg.list && \ echo 'deb [signed-by=/usr/share/postgresql-common/pgdg/apt.postgresql.org.asc] http://apt.postgresql.org/pub/repos/apt/ bookworm-pgdg-snapshot main' $PG_MAJOR >> /etc/apt/sources.list.d/pgdg.list && \ - echo 'deb [signed-by=/usr/share/postgresql-common/pgdg/apt.postgresql.org.asc] http://apt.postgresql.org/pub/repos/apt/ bookworm-pgdg-testing main' $PG_MAJOR >> /etc/apt/sources.list.d/pgdg.list + echo 'deb [signed-by=/usr/share/postgresql-common/pgdg/apt.postgresql.org.asc] http://apt.postgresql.org/pub/repos/apt/ bookworm-pgdg-testing main' $PG_MAJOR >> /etc/apt/sources.list.d/pgdg.list && \ + curl -fsSL https://packagecloud.io/timescale/timescaledb/gpgkey | gpg --dearmor > /usr/share/timescaledb-common/gpg/apt.timescaledb.gpg && \ + echo 'deb [signed-by=/usr/share/timescaledb-common/gpg/apt.timescaledb.gpg] https://packagecloud.io/timescale/timescaledb/debian/ bookworm main' | sudo tee /etc/apt/sources.list.d/timescaledb.list RUN apt-get update \ && apt-get install -y postgresql-common \ @@ -155,6 +157,7 @@ RUN apt-get update \ postgresql-client-14 \ postgresql-client-15 \ postgresql-client-16 \ + timescaledb-2-postgresql-$PG_MAJOR \ && rm -rf /var/lib/apt/lists/* RUN cd /tmp \ diff --git a/linux/ecosystem/postgres/14/Dockerfile b/linux/ecosystem/postgres/14/Dockerfile index c80d81ec4..de9858a0c 100644 --- a/linux/ecosystem/postgres/14/Dockerfile +++ b/linux/ecosystem/postgres/14/Dockerfile @@ -6,7 +6,7 @@ ARG DEBIAN_FRONTEND=noninteractive # add our user and group first to make sure their IDs get assigned consistently, regardless of whatever dependencies get added #################################################################################################################################### -RUN groupadd -r postgres && useradd -r -g postgres postgres +RUN groupadd -r postgres && useradd -m -r -g postgres -s /bin/bash postgres #################################################################################################################################### # make the "en_US.UTF-8" locale so postgres will be utf-8 enabled by default @@ -16,19 +16,21 @@ RUN apt-get update && apt-get install -y locales && rm -rf /var/lib/apt/lists/* && localedef -i en_US -c -f UTF-8 -A /usr/share/locale/locale.alias en_US.UTF-8 ENV LANG en_US.utf8 -#RUN apt-key adv --keyserver keyserver.ubuntu.com --recv-keys B97B0AFCAA1A47F044F244A07FCC7D46ACCC4CF8 - #################################################################################################################################### # http://apt.postgresql.org/pub/repos/apt/pool/14/p/postgresql-14/ +# https://docs.timescale.com/self-hosted/latest/upgrades/upgrade-pg/ #################################################################################################################################### ENV PG_MAJOR 14 ENV PG_STATS 2.1 RUN install -d /usr/share/postgresql-common/pgdg && \ + install -d /usr/share/timescaledb-common/gpg && \ curl -o /usr/share/postgresql-common/pgdg/apt.postgresql.org.asc --fail https://www.postgresql.org/media/keys/ACCC4CF8.asc && \ echo 'deb [signed-by=/usr/share/postgresql-common/pgdg/apt.postgresql.org.asc] http://apt.postgresql.org/pub/repos/apt/ bookworm-pgdg main' $PG_MAJOR > /etc/apt/sources.list.d/pgdg.list && \ echo 'deb [signed-by=/usr/share/postgresql-common/pgdg/apt.postgresql.org.asc] http://apt.postgresql.org/pub/repos/apt/ bookworm-pgdg-snapshot main' $PG_MAJOR >> /etc/apt/sources.list.d/pgdg.list && \ - echo 'deb [signed-by=/usr/share/postgresql-common/pgdg/apt.postgresql.org.asc] http://apt.postgresql.org/pub/repos/apt/ bookworm-pgdg-testing main' $PG_MAJOR >> /etc/apt/sources.list.d/pgdg.list + echo 'deb [signed-by=/usr/share/postgresql-common/pgdg/apt.postgresql.org.asc] http://apt.postgresql.org/pub/repos/apt/ bookworm-pgdg-testing main' $PG_MAJOR >> /etc/apt/sources.list.d/pgdg.listt && \ + curl -fsSL https://packagecloud.io/timescale/timescaledb/gpgkey | gpg --dearmor > /usr/share/timescaledb-common/gpg/apt.timescaledb.gpg && \ + echo 'deb [signed-by=/usr/share/timescaledb-common/gpg/apt.timescaledb.gpg] https://packagecloud.io/timescale/timescaledb/debian/ bookworm main' | sudo tee /etc/apt/sources.list.d/timescaledb.list RUN apt-get update \ && apt-get install -y postgresql-common \ @@ -117,7 +119,7 @@ RUN apt-get update \ postgresql-$PG_MAJOR-omnidb \ postgresql-$PG_MAJOR-numeral \ postgresql-$PG_MAJOR-mysql-fdw \ - postgresql-$PG_MAJOR-mobilitydb \ +# postgresql-$PG_MAJOR-mobilitydb \ postgresql-$PG_MAJOR-mimeo \ postgresql-$PG_MAJOR-londiste-sql \ postgresql-$PG_MAJOR-jsquery \ @@ -155,6 +157,7 @@ RUN apt-get update \ postgresql-client-14 \ postgresql-client-15 \ postgresql-client-16 \ + timescaledb-2-postgresql-$PG_MAJOR \ && rm -rf /var/lib/apt/lists/* RUN cd /tmp \ diff --git a/linux/ecosystem/postgres/15/Dockerfile b/linux/ecosystem/postgres/15/Dockerfile index 902e9e281..cc8060572 100644 --- a/linux/ecosystem/postgres/15/Dockerfile +++ b/linux/ecosystem/postgres/15/Dockerfile @@ -6,7 +6,7 @@ ARG DEBIAN_FRONTEND=noninteractive # add our user and group first to make sure their IDs get assigned consistently, regardless of whatever dependencies get added #################################################################################################################################### -RUN groupadd -r postgres && useradd -r -g postgres postgres +RUN groupadd -r postgres && useradd -m -r -g postgres -s /bin/bash postgres #################################################################################################################################### # make the "en_US.UTF-8" locale so postgres will be utf-8 enabled by default @@ -16,19 +16,21 @@ RUN apt-get update && apt-get install -y locales && rm -rf /var/lib/apt/lists/* && localedef -i en_US -c -f UTF-8 -A /usr/share/locale/locale.alias en_US.UTF-8 ENV LANG en_US.utf8 -#RUN apt-key adv --keyserver keyserver.ubuntu.com --recv-keys B97B0AFCAA1A47F044F244A07FCC7D46ACCC4CF8 - #################################################################################################################################### # http://apt.postgresql.org/pub/repos/apt/pool/15/p/postgresql-15/ +# https://docs.timescale.com/self-hosted/latest/upgrades/upgrade-pg/ #################################################################################################################################### ENV PG_MAJOR 15 ENV PG_STATS 2.1 RUN install -d /usr/share/postgresql-common/pgdg && \ + install -d /usr/share/timescaledb-common/gpg && \ curl -o /usr/share/postgresql-common/pgdg/apt.postgresql.org.asc --fail https://www.postgresql.org/media/keys/ACCC4CF8.asc && \ echo 'deb [signed-by=/usr/share/postgresql-common/pgdg/apt.postgresql.org.asc] http://apt.postgresql.org/pub/repos/apt/ bookworm-pgdg main' $PG_MAJOR > /etc/apt/sources.list.d/pgdg.list && \ echo 'deb [signed-by=/usr/share/postgresql-common/pgdg/apt.postgresql.org.asc] http://apt.postgresql.org/pub/repos/apt/ bookworm-pgdg-snapshot main' $PG_MAJOR >> /etc/apt/sources.list.d/pgdg.list && \ - echo 'deb [signed-by=/usr/share/postgresql-common/pgdg/apt.postgresql.org.asc] http://apt.postgresql.org/pub/repos/apt/ bookworm-pgdg-testing main' $PG_MAJOR >> /etc/apt/sources.list.d/pgdg.list + echo 'deb [signed-by=/usr/share/postgresql-common/pgdg/apt.postgresql.org.asc] http://apt.postgresql.org/pub/repos/apt/ bookworm-pgdg-testing main' $PG_MAJOR >> /etc/apt/sources.list.d/pgdg.list && \ + curl -fsSL https://packagecloud.io/timescale/timescaledb/gpgkey | gpg --dearmor > /usr/share/timescaledb-common/gpg/apt.timescaledb.gpg && \ + echo 'deb [signed-by=/usr/share/timescaledb-common/gpg/apt.timescaledb.gpg] https://packagecloud.io/timescale/timescaledb/debian/ bookworm main' | sudo tee /etc/apt/sources.list.d/timescaledb.list RUN apt-get update \ && apt-get install -y postgresql-common \ @@ -155,6 +157,7 @@ RUN apt-get update \ postgresql-client-14 \ postgresql-client-15 \ postgresql-client-16 \ + timescaledb-2-postgresql-$PG_MAJOR \ && rm -rf /var/lib/apt/lists/* RUN cd /tmp \ diff --git a/linux/ecosystem/postgres/16/Dockerfile b/linux/ecosystem/postgres/16/Dockerfile index f29e867d0..9c56bdf72 100644 --- a/linux/ecosystem/postgres/16/Dockerfile +++ b/linux/ecosystem/postgres/16/Dockerfile @@ -6,7 +6,7 @@ ARG DEBIAN_FRONTEND=noninteractive # add our user and group first to make sure their IDs get assigned consistently, regardless of whatever dependencies get added #################################################################################################################################### -RUN groupadd -r postgres && useradd -r -g postgres postgres +RUN groupadd -r postgres && useradd -m -r -g postgres -s /bin/bash postgres #################################################################################################################################### # make the "en_US.UTF-8" locale so postgres will be utf-8 enabled by default @@ -16,20 +16,21 @@ RUN apt-get update && apt-get install -y locales && rm -rf /var/lib/apt/lists/* && localedef -i en_US -c -f UTF-8 -A /usr/share/locale/locale.alias en_US.UTF-8 ENV LANG en_US.utf8 -#RUN apt-key adv --keyserver keyserver.ubuntu.com --recv-keys B97B0AFCAA1A47F044F244A07FCC7D46ACCC4CF8 - #################################################################################################################################### # http://apt.postgresql.org/pub/repos/apt/pool/16/p/postgresql-16/ +# https://docs.timescale.com/self-hosted/latest/upgrades/upgrade-pg/ #################################################################################################################################### ENV PG_MAJOR 16 - ENV PG_STATS 2.1 RUN install -d /usr/share/postgresql-common/pgdg && \ + install -d /usr/share/timescaledb-common/gpg && \ curl -o /usr/share/postgresql-common/pgdg/apt.postgresql.org.asc --fail https://www.postgresql.org/media/keys/ACCC4CF8.asc && \ echo 'deb [signed-by=/usr/share/postgresql-common/pgdg/apt.postgresql.org.asc] http://apt.postgresql.org/pub/repos/apt/ bookworm-pgdg main' $PG_MAJOR > /etc/apt/sources.list.d/pgdg.list && \ echo 'deb [signed-by=/usr/share/postgresql-common/pgdg/apt.postgresql.org.asc] http://apt.postgresql.org/pub/repos/apt/ bookworm-pgdg-snapshot main' $PG_MAJOR >> /etc/apt/sources.list.d/pgdg.list && \ - echo 'deb [signed-by=/usr/share/postgresql-common/pgdg/apt.postgresql.org.asc] http://apt.postgresql.org/pub/repos/apt/ bookworm-pgdg-testing main' $PG_MAJOR >> /etc/apt/sources.list.d/pgdg.list + echo 'deb [signed-by=/usr/share/postgresql-common/pgdg/apt.postgresql.org.asc] http://apt.postgresql.org/pub/repos/apt/ bookworm-pgdg-testing main' $PG_MAJOR >> /etc/apt/sources.list.d/pgdg.listt && \ + curl -fsSL https://packagecloud.io/timescale/timescaledb/gpgkey | gpg --dearmor > /usr/share/timescaledb-common/gpg/apt.timescaledb.gpg && \ + echo 'deb [signed-by=/usr/share/timescaledb-common/gpg/apt.timescaledb.gpg] https://packagecloud.io/timescale/timescaledb/debian/ bookworm main' | sudo tee /etc/apt/sources.list.d/timescaledb.list RUN apt-get update \ && apt-get install -y postgresql-common \ @@ -118,7 +119,7 @@ RUN apt-get update \ postgresql-$PG_MAJOR-omnidb \ postgresql-$PG_MAJOR-numeral \ postgresql-$PG_MAJOR-mysql-fdw \ - postgresql-$PG_MAJOR-mobilitydb \ +# postgresql-$PG_MAJOR-mobilitydb \ postgresql-$PG_MAJOR-mimeo \ postgresql-$PG_MAJOR-londiste-sql \ postgresql-$PG_MAJOR-jsquery \ @@ -156,6 +157,7 @@ RUN apt-get update \ postgresql-client-14 \ postgresql-client-15 \ postgresql-client-16 \ + timescaledb-2-postgresql-$PG_MAJOR \ && rm -rf /var/lib/apt/lists/* RUN cd /tmp \ diff --git a/linux/ecosystem/postgres/8.2/Dockerfile b/linux/ecosystem/postgres/8.2/Dockerfile index 00f2c8fda..fec5b362d 100644 --- a/linux/ecosystem/postgres/8.2/Dockerfile +++ b/linux/ecosystem/postgres/8.2/Dockerfile @@ -1,4 +1,4 @@ -FROM epicmorg/debian:bullseye +FROM epicmorg/debian:bookworm LABEL maintainer="EpicMorg DevTeam, developer@epicm.org" ARG DEBIAN_FRONTEND=noninteractive @@ -6,7 +6,7 @@ ARG DEBIAN_FRONTEND=noninteractive # add our user and group first to make sure their IDs get assigned consistently, regardless of whatever dependencies get added #################################################################################################################################### -RUN groupadd -r postgres && useradd -r -g postgres postgres +RUN groupadd -r postgres && useradd -m -r -g postgres -s /bin/bash postgres #################################################################################################################################### # make the "en_US.UTF-8" locale so postgres will be utf-8 enabled by default @@ -16,24 +16,43 @@ RUN apt-get update && apt-get install -y locales && rm -rf /var/lib/apt/lists/* && localedef -i en_US -c -f UTF-8 -A /usr/share/locale/locale.alias en_US.UTF-8 ENV LANG en_US.utf8 -RUN apt-key adv --keyserver keyserver.ubuntu.com --recv-keys B97B0AFCAA1A47F044F244A07FCC7D46ACCC4CF8 - #################################################################################################################################### # http://apt.postgresql.org/pub/repos/apt/pool/8.2/p/postgresql-8.2/ #################################################################################################################################### ENV PG_MAJOR 8.2 -RUN echo 'deb http://apt.postgresql.org/pub/repos/apt/ bullseye-pgdg main' $PG_MAJOR > /etc/apt/sources.list.d/pgdg.list && \ - echo 'deb http://apt.postgresql.org/pub/repos/apt/ bullseye-pgdg-snapshot main' $PG_MAJOR >> /etc/apt/sources.list.d/pgdg.list && \ - echo 'deb http://apt.postgresql.org/pub/repos/apt/ bullseye-pgdg-testing main' $PG_MAJOR >> /etc/apt/sources.list.d/pgdg.list +RUN install -d /usr/share/postgresql-common/pgdg && \ + curl -o /usr/share/postgresql-common/pgdg/apt.postgresql.org.asc --fail https://www.postgresql.org/media/keys/ACCC4CF8.asc && \ + echo 'deb [signed-by=/usr/share/postgresql-common/pgdg/apt.postgresql.org.asc] http://apt.postgresql.org/pub/repos/apt/ bookworm-pgdg main' $PG_MAJOR > /etc/apt/sources.list.d/pgdg.list && \ + echo 'deb [signed-by=/usr/share/postgresql-common/pgdg/apt.postgresql.org.asc] http://apt.postgresql.org/pub/repos/apt/ bookworm-pgdg-snapshot main' $PG_MAJOR >> /etc/apt/sources.list.d/pgdg.list && \ + echo 'deb [signed-by=/usr/share/postgresql-common/pgdg/apt.postgresql.org.asc] http://apt.postgresql.org/pub/repos/apt/ bookworm-pgdg-testing main' $PG_MAJOR >> /etc/apt/sources.list.d/pgdg.listt RUN apt-get update \ && apt-get install -y postgresql-common \ && sed -ri 's/#(create_main_cluster) .*$/\1 = false/' /etc/postgresql-common/createcluster.conf \ && apt-get install -y \ - postgresql-$PG_MAJOR \ - postgresql-contrib-$PG_MAJOR \ - && rm -rf /var/lib/apt/lists/* + postgresql-$PG_MAJOR \ + postgresql-server-dev-$PG_MAJOR \ + postgresql-contrib-$PG_MAJOR \ + postgresql-client-8.2 \ + postgresql-client-8.3 \ + postgresql-client-8.4 \ + postgresql-client-9.0 \ + postgresql-client-9.1 \ + postgresql-client-9.2 \ + postgresql-client-9.3 \ + postgresql-client-9.4 \ + postgresql-client-9.5 \ + postgresql-client-9.6 \ + postgresql-client-10 \ + postgresql-client-11 \ + postgresql-client-12 \ + postgresql-client-13 \ + postgresql-client-14 \ + postgresql-client-15 \ + postgresql-client-16 \ + && rm -rf /var/lib/apt/lists/* \ + && rm -rf /tmp/* RUN mkdir /docker-entrypoint-initdb.d RUN mkdir -p /var/run/postgresql && chown -R postgres /var/run/postgresql diff --git a/linux/ecosystem/postgres/8.3/Dockerfile b/linux/ecosystem/postgres/8.3/Dockerfile index 349e1e256..a59803a95 100644 --- a/linux/ecosystem/postgres/8.3/Dockerfile +++ b/linux/ecosystem/postgres/8.3/Dockerfile @@ -1,4 +1,4 @@ -FROM epicmorg/debian:bullseye +FROM epicmorg/debian:bookworm LABEL maintainer="EpicMorg DevTeam, developer@epicm.org" ARG DEBIAN_FRONTEND=noninteractive @@ -6,7 +6,7 @@ ARG DEBIAN_FRONTEND=noninteractive # add our user and group first to make sure their IDs get assigned consistently, regardless of whatever dependencies get added #################################################################################################################################### -RUN groupadd -r postgres && useradd -r -g postgres postgres +RUN groupadd -r postgres && useradd -m -r -g postgres -s /bin/bash postgres #################################################################################################################################### # make the "en_US.UTF-8" locale so postgres will be utf-8 enabled by default @@ -16,25 +16,44 @@ RUN apt-get update && apt-get install -y locales && rm -rf /var/lib/apt/lists/* && localedef -i en_US -c -f UTF-8 -A /usr/share/locale/locale.alias en_US.UTF-8 ENV LANG en_US.utf8 -RUN apt-key adv --keyserver keyserver.ubuntu.com --recv-keys B97B0AFCAA1A47F044F244A07FCC7D46ACCC4CF8 - #################################################################################################################################### # http://apt.postgresql.org/pub/repos/apt/pool/8.3/p/postgresql-8.3/ #################################################################################################################################### ENV PG_MAJOR 8.3 ENV PG_VERSION 8.3 -RUN echo 'deb http://apt.postgresql.org/pub/repos/apt/ bullseye-pgdg main' $PG_MAJOR > /etc/apt/sources.list.d/pgdg.list && \ - echo 'deb http://apt.postgresql.org/pub/repos/apt/ bullseye-pgdg-snapshot main' $PG_MAJOR >> /etc/apt/sources.list.d/pgdg.list && \ - echo 'deb http://apt.postgresql.org/pub/repos/apt/ bullseye-pgdg-testing main' $PG_MAJOR >> /etc/apt/sources.list.d/pgdg.list +RUN install -d /usr/share/postgresql-common/pgdg && \ + curl -o /usr/share/postgresql-common/pgdg/apt.postgresql.org.asc --fail https://www.postgresql.org/media/keys/ACCC4CF8.asc && \ + echo 'deb [signed-by=/usr/share/postgresql-common/pgdg/apt.postgresql.org.asc] http://apt.postgresql.org/pub/repos/apt/ bookworm-pgdg main' $PG_MAJOR > /etc/apt/sources.list.d/pgdg.list && \ + echo 'deb [signed-by=/usr/share/postgresql-common/pgdg/apt.postgresql.org.asc] http://apt.postgresql.org/pub/repos/apt/ bookworm-pgdg-snapshot main' $PG_MAJOR >> /etc/apt/sources.list.d/pgdg.list && \ + echo 'deb [signed-by=/usr/share/postgresql-common/pgdg/apt.postgresql.org.asc] http://apt.postgresql.org/pub/repos/apt/ bookworm-pgdg-testing main' $PG_MAJOR >> /etc/apt/sources.list.d/pgdg.listt RUN apt-get update \ && apt-get install -y postgresql-common \ && sed -ri 's/#(create_main_cluster) .*$/\1 = false/' /etc/postgresql-common/createcluster.conf \ && apt-get install -y \ - postgresql-$PG_MAJOR \ - postgresql-contrib-$PG_MAJOR \ - && rm -rf /var/lib/apt/lists/* + postgresql-$PG_MAJOR \ + postgresql-server-dev-$PG_MAJOR \ + postgresql-contrib-$PG_MAJOR \ + postgresql-client-8.2 \ + postgresql-client-8.3 \ + postgresql-client-8.4 \ + postgresql-client-9.0 \ + postgresql-client-9.1 \ + postgresql-client-9.2 \ + postgresql-client-9.3 \ + postgresql-client-9.4 \ + postgresql-client-9.5 \ + postgresql-client-9.6 \ + postgresql-client-10 \ + postgresql-client-11 \ + postgresql-client-12 \ + postgresql-client-13 \ + postgresql-client-14 \ + postgresql-client-15 \ + postgresql-client-16 \ + && rm -rf /var/lib/apt/lists/* \ + && rm -rf /tmp/* RUN mkdir /docker-entrypoint-initdb.d RUN mkdir -p /var/run/postgresql && chown -R postgres /var/run/postgresql diff --git a/linux/ecosystem/postgres/8.4/Dockerfile b/linux/ecosystem/postgres/8.4/Dockerfile index 5b908cd5e..55b033ddf 100644 --- a/linux/ecosystem/postgres/8.4/Dockerfile +++ b/linux/ecosystem/postgres/8.4/Dockerfile @@ -1,4 +1,4 @@ -FROM epicmorg/debian:bullseye +FROM epicmorg/debian:bookworm LABEL maintainer="EpicMorg DevTeam, developer@epicm.org" ARG DEBIAN_FRONTEND=noninteractive @@ -6,7 +6,7 @@ ARG DEBIAN_FRONTEND=noninteractive # add our user and group first to make sure their IDs get assigned consistently, regardless of whatever dependencies get added #################################################################################################################################### -RUN groupadd -r postgres && useradd -r -g postgres postgres +RUN groupadd -r postgres && useradd -m -r -g postgres -s /bin/bash postgres #################################################################################################################################### # make the "en_US.UTF-8" locale so postgres will be utf-8 enabled by default @@ -16,24 +16,43 @@ RUN apt-get update && apt-get install -y locales && rm -rf /var/lib/apt/lists/* && localedef -i en_US -c -f UTF-8 -A /usr/share/locale/locale.alias en_US.UTF-8 ENV LANG en_US.utf8 -RUN apt-key adv --keyserver keyserver.ubuntu.com --recv-keys B97B0AFCAA1A47F044F244A07FCC7D46ACCC4CF8 - #################################################################################################################################### # http://apt.postgresql.org/pub/repos/apt/pool/8.4/p/postgresql-8.4/ #################################################################################################################################### ENV PG_MAJOR 8.4 -RUN echo 'deb http://apt.postgresql.org/pub/repos/apt/ bullseye-pgdg main' $PG_MAJOR > /etc/apt/sources.list.d/pgdg.list && \ - echo 'deb http://apt.postgresql.org/pub/repos/apt/ bullseye-pgdg-snapshot main' $PG_MAJOR >> /etc/apt/sources.list.d/pgdg.list && \ - echo 'deb http://apt.postgresql.org/pub/repos/apt/ bullseye-pgdg-testing main' $PG_MAJOR >> /etc/apt/sources.list.d/pgdg.list +RUN install -d /usr/share/postgresql-common/pgdg && \ + curl -o /usr/share/postgresql-common/pgdg/apt.postgresql.org.asc --fail https://www.postgresql.org/media/keys/ACCC4CF8.asc && \ + echo 'deb [signed-by=/usr/share/postgresql-common/pgdg/apt.postgresql.org.asc] http://apt.postgresql.org/pub/repos/apt/ bookworm-pgdg main' $PG_MAJOR > /etc/apt/sources.list.d/pgdg.list && \ + echo 'deb [signed-by=/usr/share/postgresql-common/pgdg/apt.postgresql.org.asc] http://apt.postgresql.org/pub/repos/apt/ bookworm-pgdg-snapshot main' $PG_MAJOR >> /etc/apt/sources.list.d/pgdg.list && \ + echo 'deb [signed-by=/usr/share/postgresql-common/pgdg/apt.postgresql.org.asc] http://apt.postgresql.org/pub/repos/apt/ bookworm-pgdg-testing main' $PG_MAJOR >> /etc/apt/sources.list.d/pgdg.listt RUN apt-get update \ && apt-get install -y postgresql-common \ && sed -ri 's/#(create_main_cluster) .*$/\1 = false/' /etc/postgresql-common/createcluster.conf \ && apt-get install -y \ - postgresql-$PG_MAJOR \ - postgresql-contrib-$PG_MAJOR \ - && rm -rf /var/lib/apt/lists/* + postgresql-$PG_MAJOR \ + postgresql-server-dev-$PG_MAJOR \ + postgresql-contrib-$PG_MAJOR \ + postgresql-client-8.2 \ + postgresql-client-8.3 \ + postgresql-client-8.4 \ + postgresql-client-9.0 \ + postgresql-client-9.1 \ + postgresql-client-9.2 \ + postgresql-client-9.3 \ + postgresql-client-9.4 \ + postgresql-client-9.5 \ + postgresql-client-9.6 \ + postgresql-client-10 \ + postgresql-client-11 \ + postgresql-client-12 \ + postgresql-client-13 \ + postgresql-client-14 \ + postgresql-client-15 \ + postgresql-client-16 \ + && rm -rf /var/lib/apt/lists/* \ + && rm -rf /tmp/* RUN mkdir /docker-entrypoint-initdb.d RUN mkdir -p /var/run/postgresql && chown -R postgres /var/run/postgresql diff --git a/linux/ecosystem/postgres/9.0/Dockerfile b/linux/ecosystem/postgres/9.0/Dockerfile index 3cc0bf83a..d5204604b 100644 --- a/linux/ecosystem/postgres/9.0/Dockerfile +++ b/linux/ecosystem/postgres/9.0/Dockerfile @@ -1,4 +1,4 @@ -FROM epicmorg/debian:bullseye +FROM epicmorg/debian:bookworm LABEL maintainer="EpicMorg DevTeam, developer@epicm.org" ARG DEBIAN_FRONTEND=noninteractive @@ -6,7 +6,7 @@ ARG DEBIAN_FRONTEND=noninteractive # add our user and group first to make sure their IDs get assigned consistently, regardless of whatever dependencies get added #################################################################################################################################### -RUN groupadd -r postgres && useradd -r -g postgres postgres +RUN groupadd -r postgres && useradd -m -r -g postgres -s /bin/bash postgres #################################################################################################################################### # make the "en_US.UTF-8" locale so postgres will be utf-8 enabled by default @@ -16,24 +16,43 @@ RUN apt-get update && apt-get install -y locales && rm -rf /var/lib/apt/lists/* && localedef -i en_US -c -f UTF-8 -A /usr/share/locale/locale.alias en_US.UTF-8 ENV LANG en_US.utf8 -RUN apt-key adv --keyserver keyserver.ubuntu.com --recv-keys B97B0AFCAA1A47F044F244A07FCC7D46ACCC4CF8 - #################################################################################################################################### # http://apt.postgresql.org/pub/repos/apt/pool/9.0/p/postgresql-9.0/ #################################################################################################################################### ENV PG_MAJOR 9.0 -RUN echo 'deb http://apt.postgresql.org/pub/repos/apt/ bullseye-pgdg main' $PG_MAJOR > /etc/apt/sources.list.d/pgdg.list && \ - echo 'deb http://apt.postgresql.org/pub/repos/apt/ bullseye-pgdg-snapshot main' $PG_MAJOR >> /etc/apt/sources.list.d/pgdg.list && \ - echo 'deb http://apt.postgresql.org/pub/repos/apt/ bullseye-pgdg-testing main' $PG_MAJOR >> /etc/apt/sources.list.d/pgdg.list +RUN install -d /usr/share/postgresql-common/pgdg && \ + curl -o /usr/share/postgresql-common/pgdg/apt.postgresql.org.asc --fail https://www.postgresql.org/media/keys/ACCC4CF8.asc && \ + echo 'deb [signed-by=/usr/share/postgresql-common/pgdg/apt.postgresql.org.asc] http://apt.postgresql.org/pub/repos/apt/ bookworm-pgdg main' $PG_MAJOR > /etc/apt/sources.list.d/pgdg.list && \ + echo 'deb [signed-by=/usr/share/postgresql-common/pgdg/apt.postgresql.org.asc] http://apt.postgresql.org/pub/repos/apt/ bookworm-pgdg-snapshot main' $PG_MAJOR >> /etc/apt/sources.list.d/pgdg.list && \ + echo 'deb [signed-by=/usr/share/postgresql-common/pgdg/apt.postgresql.org.asc] http://apt.postgresql.org/pub/repos/apt/ bookworm-pgdg-testing main' $PG_MAJOR >> /etc/apt/sources.list.d/pgdg.listt RUN apt-get update \ - && apt-get install -y postgresql-common \ - && sed -ri 's/#(create_main_cluster) .*$/\1 = false/' /etc/postgresql-common/createcluster.conf \ - && apt-get install -y \ - postgresql-$PG_MAJOR \ - postgresql-contrib-$PG_MAJOR \ - && rm -rf /var/lib/apt/lists/* + && apt-get install -y postgresql-common \ + && sed -ri 's/#(create_main_cluster) .*$/\1 = false/' /etc/postgresql-common/createcluster.conf \ + && apt-get install -y \ + postgresql-$PG_MAJOR \ + postgresql-server-dev-$PG_MAJOR \ + postgresql-contrib-$PG_MAJOR \ + postgresql-client-8.2 \ + postgresql-client-8.3 \ + postgresql-client-8.4 \ + postgresql-client-9.0 \ + postgresql-client-9.1 \ + postgresql-client-9.2 \ + postgresql-client-9.3 \ + postgresql-client-9.4 \ + postgresql-client-9.5 \ + postgresql-client-9.6 \ + postgresql-client-10 \ + postgresql-client-11 \ + postgresql-client-12 \ + postgresql-client-13 \ + postgresql-client-14 \ + postgresql-client-15 \ + postgresql-client-16 \ + && rm -rf /var/lib/apt/lists/* \ + && rm -rf /tmp/* RUN mkdir /docker-entrypoint-initdb.d RUN mkdir -p /var/run/postgresql && chown -R postgres /var/run/postgresql diff --git a/linux/ecosystem/postgres/9.1/Dockerfile b/linux/ecosystem/postgres/9.1/Dockerfile index e1bff95e0..09a532c13 100644 --- a/linux/ecosystem/postgres/9.1/Dockerfile +++ b/linux/ecosystem/postgres/9.1/Dockerfile @@ -1,4 +1,4 @@ -FROM epicmorg/debian:bullseye +FROM epicmorg/debian:bookworm LABEL maintainer="EpicMorg DevTeam, developer@epicm.org" ARG DEBIAN_FRONTEND=noninteractive @@ -6,7 +6,7 @@ ARG DEBIAN_FRONTEND=noninteractive # add our user and group first to make sure their IDs get assigned consistently, regardless of whatever dependencies get added #################################################################################################################################### -RUN groupadd -r postgres && useradd -r -g postgres postgres +RUN groupadd -r postgres && useradd -m -r -g postgres -s /bin/bash postgres #################################################################################################################################### # make the "en_US.UTF-8" locale so postgres will be utf-8 enabled by default @@ -16,25 +16,43 @@ RUN apt-get update && apt-get install -y locales && rm -rf /var/lib/apt/lists/* && localedef -i en_US -c -f UTF-8 -A /usr/share/locale/locale.alias en_US.UTF-8 ENV LANG en_US.utf8 -RUN apt-key adv --keyserver keyserver.ubuntu.com --recv-keys B97B0AFCAA1A47F044F244A07FCC7D46ACCC4CF8 - #################################################################################################################################### # http://apt.postgresql.org/pub/repos/apt/pool/9.1/p/postgresql-9.1/ #################################################################################################################################### ENV PG_MAJOR 9.1 - -RUN echo 'deb http://apt.postgresql.org/pub/repos/apt/ bullseye-pgdg main' $PG_MAJOR > /etc/apt/sources.list.d/pgdg.list && \ - echo 'deb http://apt.postgresql.org/pub/repos/apt/ bullseye-pgdg-snapshot main' $PG_MAJOR >> /etc/apt/sources.list.d/pgdg.list && \ - echo 'deb http://apt.postgresql.org/pub/repos/apt/ bullseye-pgdg-testing main' $PG_MAJOR >> /etc/apt/sources.list.d/pgdg.list +RUN install -d /usr/share/postgresql-common/pgdg && \ + curl -o /usr/share/postgresql-common/pgdg/apt.postgresql.org.asc --fail https://www.postgresql.org/media/keys/ACCC4CF8.asc && \ + echo 'deb [signed-by=/usr/share/postgresql-common/pgdg/apt.postgresql.org.asc] http://apt.postgresql.org/pub/repos/apt/ bookworm-pgdg main' $PG_MAJOR > /etc/apt/sources.list.d/pgdg.list && \ + echo 'deb [signed-by=/usr/share/postgresql-common/pgdg/apt.postgresql.org.asc] http://apt.postgresql.org/pub/repos/apt/ bookworm-pgdg-snapshot main' $PG_MAJOR >> /etc/apt/sources.list.d/pgdg.list && \ + echo 'deb [signed-by=/usr/share/postgresql-common/pgdg/apt.postgresql.org.asc] http://apt.postgresql.org/pub/repos/apt/ bookworm-pgdg-testing main' $PG_MAJOR >> /etc/apt/sources.list.d/pgdg.listt RUN apt-get update \ - && apt-get install -y postgresql-common \ - && sed -ri 's/#(create_main_cluster) .*$/\1 = false/' /etc/postgresql-common/createcluster.conf \ - && apt-get install -y \ - postgresql-$PG_MAJOR \ - postgresql-contrib-$PG_MAJOR \ - && rm -rf /var/lib/apt/lists/* + && apt-get install -y postgresql-common \ + && sed -ri 's/#(create_main_cluster) .*$/\1 = false/' /etc/postgresql-common/createcluster.conf \ + && apt-get install -y \ + postgresql-$PG_MAJOR \ + postgresql-server-dev-$PG_MAJOR \ + postgresql-contrib-$PG_MAJOR \ + postgresql-client-8.2 \ + postgresql-client-8.3 \ + postgresql-client-8.4 \ + postgresql-client-9.0 \ + postgresql-client-9.1 \ + postgresql-client-9.2 \ + postgresql-client-9.3 \ + postgresql-client-9.4 \ + postgresql-client-9.5 \ + postgresql-client-9.6 \ + postgresql-client-10 \ + postgresql-client-11 \ + postgresql-client-12 \ + postgresql-client-13 \ + postgresql-client-14 \ + postgresql-client-15 \ + postgresql-client-16 \ + && rm -rf /var/lib/apt/lists/* \ + && rm -rf /tmp/* RUN mkdir /docker-entrypoint-initdb.d RUN mkdir -p /var/run/postgresql && chown -R postgres /var/run/postgresql diff --git a/linux/ecosystem/postgres/9.2/Dockerfile b/linux/ecosystem/postgres/9.2/Dockerfile index f0420c383..f13b9187b 100644 --- a/linux/ecosystem/postgres/9.2/Dockerfile +++ b/linux/ecosystem/postgres/9.2/Dockerfile @@ -1,4 +1,4 @@ -FROM epicmorg/debian:bullseye +FROM epicmorg/debian:bookworm LABEL maintainer="EpicMorg DevTeam, developer@epicm.org" ARG DEBIAN_FRONTEND=noninteractive @@ -6,7 +6,7 @@ ARG DEBIAN_FRONTEND=noninteractive # add our user and group first to make sure their IDs get assigned consistently, regardless of whatever dependencies get added #################################################################################################################################### -RUN groupadd -r postgres && useradd -r -g postgres postgres +RUN groupadd -r postgres && useradd -m -r -g postgres -s /bin/bash postgres #################################################################################################################################### # make the "en_US.UTF-8" locale so postgres will be utf-8 enabled by default @@ -16,24 +16,43 @@ RUN apt-get update && apt-get install -y locales && rm -rf /var/lib/apt/lists/* && localedef -i en_US -c -f UTF-8 -A /usr/share/locale/locale.alias en_US.UTF-8 ENV LANG en_US.utf8 -RUN apt-key adv --keyserver keyserver.ubuntu.com --recv-keys B97B0AFCAA1A47F044F244A07FCC7D46ACCC4CF8 - #################################################################################################################################### # http://apt.postgresql.org/pub/repos/apt/pool/9.2/p/postgresql-9.2/ #################################################################################################################################### ENV PG_MAJOR 9.2 -RUN echo 'deb http://apt.postgresql.org/pub/repos/apt/ bullseye-pgdg main' $PG_MAJOR > /etc/apt/sources.list.d/pgdg.list && \ - echo 'deb http://apt.postgresql.org/pub/repos/apt/ bullseye-pgdg-snapshot main' $PG_MAJOR >> /etc/apt/sources.list.d/pgdg.list && \ - echo 'deb http://apt.postgresql.org/pub/repos/apt/ bullseye-pgdg-testing main' $PG_MAJOR >> /etc/apt/sources.list.d/pgdg.list +RUN install -d /usr/share/postgresql-common/pgdg && \ + curl -o /usr/share/postgresql-common/pgdg/apt.postgresql.org.asc --fail https://www.postgresql.org/media/keys/ACCC4CF8.asc && \ + echo 'deb [signed-by=/usr/share/postgresql-common/pgdg/apt.postgresql.org.asc] http://apt.postgresql.org/pub/repos/apt/ bookworm-pgdg main' $PG_MAJOR > /etc/apt/sources.list.d/pgdg.list && \ + echo 'deb [signed-by=/usr/share/postgresql-common/pgdg/apt.postgresql.org.asc] http://apt.postgresql.org/pub/repos/apt/ bookworm-pgdg-snapshot main' $PG_MAJOR >> /etc/apt/sources.list.d/pgdg.list && \ + echo 'deb [signed-by=/usr/share/postgresql-common/pgdg/apt.postgresql.org.asc] http://apt.postgresql.org/pub/repos/apt/ bookworm-pgdg-testing main' $PG_MAJOR >> /etc/apt/sources.list.d/pgdg.listt RUN apt-get update \ - && apt-get install -y postgresql-common \ - && sed -ri 's/#(create_main_cluster) .*$/\1 = false/' /etc/postgresql-common/createcluster.conf \ - && apt-get install -y \ - postgresql-$PG_MAJOR \ - postgresql-contrib-$PG_MAJOR \ - && rm -rf /var/lib/apt/lists/* + && apt-get install -y postgresql-common \ + && sed -ri 's/#(create_main_cluster) .*$/\1 = false/' /etc/postgresql-common/createcluster.conf \ + && apt-get install -y \ + postgresql-$PG_MAJOR \ + postgresql-server-dev-$PG_MAJOR \ + postgresql-contrib-$PG_MAJOR \ + postgresql-client-8.2 \ + postgresql-client-8.3 \ + postgresql-client-8.4 \ + postgresql-client-9.0 \ + postgresql-client-9.1 \ + postgresql-client-9.2 \ + postgresql-client-9.3 \ + postgresql-client-9.4 \ + postgresql-client-9.5 \ + postgresql-client-9.6 \ + postgresql-client-10 \ + postgresql-client-11 \ + postgresql-client-12 \ + postgresql-client-13 \ + postgresql-client-14 \ + postgresql-client-15 \ + postgresql-client-16 \ + && rm -rf /var/lib/apt/lists/* \ + && rm -rf /tmp/* RUN mkdir /docker-entrypoint-initdb.d RUN mkdir -p /var/run/postgresql && chown -R postgres /var/run/postgresql diff --git a/linux/ecosystem/postgres/9.3/Dockerfile b/linux/ecosystem/postgres/9.3/Dockerfile index eed12706f..f23511a86 100644 --- a/linux/ecosystem/postgres/9.3/Dockerfile +++ b/linux/ecosystem/postgres/9.3/Dockerfile @@ -1,4 +1,4 @@ -FROM epicmorg/debian:bullseye +FROM epicmorg/debian:bookworm LABEL maintainer="EpicMorg DevTeam, developer@epicm.org" ARG DEBIAN_FRONTEND=noninteractive @@ -6,7 +6,7 @@ ARG DEBIAN_FRONTEND=noninteractive # add our user and group first to make sure their IDs get assigned consistently, regardless of whatever dependencies get added #################################################################################################################################### -RUN groupadd -r postgres && useradd -r -g postgres postgres +RUN groupadd -r postgres && useradd -m -r -g postgres -s /bin/bash postgres #################################################################################################################################### # make the "en_US.UTF-8" locale so postgres will be utf-8 enabled by default @@ -16,24 +16,44 @@ RUN apt-get update && apt-get install -y locales && rm -rf /var/lib/apt/lists/* && localedef -i en_US -c -f UTF-8 -A /usr/share/locale/locale.alias en_US.UTF-8 ENV LANG en_US.utf8 -RUN apt-key adv --keyserver keyserver.ubuntu.com --recv-keys B97B0AFCAA1A47F044F244A07FCC7D46ACCC4CF8 - #################################################################################################################################### # http://apt.postgresql.org/pub/repos/apt/pool/9.3/p/postgresql-9.3/ #################################################################################################################################### ENV PG_MAJOR 9.3 -RUN echo 'deb http://apt.postgresql.org/pub/repos/apt/ bullseye-pgdg main' $PG_MAJOR > /etc/apt/sources.list.d/pgdg.list && \ - echo 'deb http://apt.postgresql.org/pub/repos/apt/ bullseye-pgdg-snapshot main' $PG_MAJOR >> /etc/apt/sources.list.d/pgdg.list && \ - echo 'deb http://apt.postgresql.org/pub/repos/apt/ bullseye-pgdg-testing main' $PG_MAJOR >> /etc/apt/sources.list.d/pgdg.list +RUN install -d /usr/share/postgresql-common/pgdg && \ + curl -o /usr/share/postgresql-common/pgdg/apt.postgresql.org.asc --fail https://www.postgresql.org/media/keys/ACCC4CF8.asc && \ + echo 'deb [signed-by=/usr/share/postgresql-common/pgdg/apt.postgresql.org.asc] http://apt.postgresql.org/pub/repos/apt/ bookworm-pgdg main' $PG_MAJOR > /etc/apt/sources.list.d/pgdg.list && \ + echo 'deb [signed-by=/usr/share/postgresql-common/pgdg/apt.postgresql.org.asc] http://apt.postgresql.org/pub/repos/apt/ bookworm-pgdg-snapshot main' $PG_MAJOR >> /etc/apt/sources.list.d/pgdg.list && \ + echo 'deb [signed-by=/usr/share/postgresql-common/pgdg/apt.postgresql.org.asc] http://apt.postgresql.org/pub/repos/apt/ bookworm-pgdg-testing main' $PG_MAJOR >> /etc/apt/sources.list.d/pgdg.listt RUN apt-get update \ - && apt-get install -y postgresql-common \ - && sed -ri 's/#(create_main_cluster) .*$/\1 = false/' /etc/postgresql-common/createcluster.conf \ - && apt-get install -y \ - postgresql-$PG_MAJOR \ - postgresql-contrib-$PG_MAJOR \ - && rm -rf /var/lib/apt/lists/* + && apt-get install -y postgresql-common \ + && sed -ri 's/#(create_main_cluster) .*$/\1 = false/' /etc/postgresql-common/createcluster.conf \ + && apt-get install -y \ + postgresql-$PG_MAJOR \ + postgresql-server-dev-$PG_MAJOR \ + postgresql-contrib-$PG_MAJOR \ + postgresql-client-8.2 \ + postgresql-client-8.3 \ + postgresql-client-8.4 \ + postgresql-client-9.0 \ + postgresql-client-9.1 \ + postgresql-client-9.2 \ + postgresql-client-9.3 \ + postgresql-client-9.4 \ + postgresql-client-9.5 \ + postgresql-client-9.6 \ + postgresql-client-10 \ + postgresql-client-11 \ + postgresql-client-12 \ + postgresql-client-13 \ + postgresql-client-14 \ + postgresql-client-15 \ + postgresql-client-16 \ + && rm -rf /var/lib/apt/lists/* \ + && rm -rf /tmp/* + RUN mkdir /docker-entrypoint-initdb.d RUN mkdir -p /var/run/postgresql && chown -R postgres /var/run/postgresql diff --git a/linux/ecosystem/postgres/9.4/Dockerfile b/linux/ecosystem/postgres/9.4/Dockerfile index 45e73aab8..c04387b11 100644 --- a/linux/ecosystem/postgres/9.4/Dockerfile +++ b/linux/ecosystem/postgres/9.4/Dockerfile @@ -1,4 +1,4 @@ -FROM epicmorg/debian:bullseye +FROM epicmorg/debian:bookworm LABEL maintainer="EpicMorg DevTeam, developer@epicm.org" ARG DEBIAN_FRONTEND=noninteractive @@ -6,7 +6,7 @@ ARG DEBIAN_FRONTEND=noninteractive # add our user and group first to make sure their IDs get assigned consistently, regardless of whatever dependencies get added #################################################################################################################################### -RUN groupadd -r postgres && useradd -r -g postgres postgres +RUN groupadd -r postgres && useradd -m -r -g postgres -s /bin/bash postgres #################################################################################################################################### # make the "en_US.UTF-8" locale so postgres will be utf-8 enabled by default @@ -16,24 +16,44 @@ RUN apt-get update && apt-get install -y locales && rm -rf /var/lib/apt/lists/* && localedef -i en_US -c -f UTF-8 -A /usr/share/locale/locale.alias en_US.UTF-8 ENV LANG en_US.utf8 -RUN apt-key adv --keyserver keyserver.ubuntu.com --recv-keys B97B0AFCAA1A47F044F244A07FCC7D46ACCC4CF8 - #################################################################################################################################### # http://apt.postgresql.org/pub/repos/apt/pool/9.4/p/postgresql-9.4/ #################################################################################################################################### ENV PG_MAJOR 9.4 -RUN echo 'deb http://apt.postgresql.org/pub/repos/apt/ bullseye-pgdg main' $PG_MAJOR > /etc/apt/sources.list.d/pgdg.list && \ - echo 'deb http://apt.postgresql.org/pub/repos/apt/ bullseye-pgdg-snapshot main' $PG_MAJOR >> /etc/apt/sources.list.d/pgdg.list && \ - echo 'deb http://apt.postgresql.org/pub/repos/apt/ bullseye-pgdg-testing main' $PG_MAJOR >> /etc/apt/sources.list.d/pgdg.list +RUN install -d /usr/share/postgresql-common/pgdg && \ + curl -o /usr/share/postgresql-common/pgdg/apt.postgresql.org.asc --fail https://www.postgresql.org/media/keys/ACCC4CF8.asc && \ + echo 'deb [signed-by=/usr/share/postgresql-common/pgdg/apt.postgresql.org.asc] http://apt.postgresql.org/pub/repos/apt/ bookworm-pgdg main' $PG_MAJOR > /etc/apt/sources.list.d/pgdg.list && \ + echo 'deb [signed-by=/usr/share/postgresql-common/pgdg/apt.postgresql.org.asc] http://apt.postgresql.org/pub/repos/apt/ bookworm-pgdg-snapshot main' $PG_MAJOR >> /etc/apt/sources.list.d/pgdg.list && \ + echo 'deb [signed-by=/usr/share/postgresql-common/pgdg/apt.postgresql.org.asc] http://apt.postgresql.org/pub/repos/apt/ bookworm-pgdg-testing main' $PG_MAJOR >> /etc/apt/sources.list.d/pgdg.listt RUN apt-get update \ && apt-get install -y postgresql-common \ && sed -ri 's/#(create_main_cluster) .*$/\1 = false/' /etc/postgresql-common/createcluster.conf \ && apt-get install -y \ postgresql-$PG_MAJOR \ + postgresql-server-dev-$PG_MAJOR \ postgresql-contrib-$PG_MAJOR \ - && rm -rf /var/lib/apt/lists/* + postgresql-client-8.2 \ + postgresql-client-8.3 \ + postgresql-client-8.4 \ + postgresql-client-9.0 \ + postgresql-client-9.1 \ + postgresql-client-9.2 \ + postgresql-client-9.3 \ + postgresql-client-9.4 \ + postgresql-client-9.5 \ + postgresql-client-9.6 \ + postgresql-client-10 \ + postgresql-client-11 \ + postgresql-client-12 \ + postgresql-client-13 \ + postgresql-client-14 \ + postgresql-client-15 \ + postgresql-client-16 \ + && rm -rf /var/lib/apt/lists/* \ + && rm -rf /tmp/* + RUN mkdir /docker-entrypoint-initdb.d RUN mkdir -p /var/run/postgresql && chown -R postgres /var/run/postgresql diff --git a/linux/ecosystem/postgres/9.5/Dockerfile b/linux/ecosystem/postgres/9.5/Dockerfile index f032049e4..27b8f640a 100644 --- a/linux/ecosystem/postgres/9.5/Dockerfile +++ b/linux/ecosystem/postgres/9.5/Dockerfile @@ -1,4 +1,4 @@ -FROM epicmorg/debian:bullseye +FROM epicmorg/debian:bookworm LABEL maintainer="EpicMorg DevTeam, developer@epicm.org" ARG DEBIAN_FRONTEND=noninteractive @@ -6,7 +6,7 @@ ARG DEBIAN_FRONTEND=noninteractive # add our user and group first to make sure their IDs get assigned consistently, regardless of whatever dependencies get added #################################################################################################################################### -RUN groupadd -r postgres && useradd -r -g postgres postgres +RUN groupadd -r postgres && useradd -m -r -g postgres -s /bin/bash postgres #################################################################################################################################### # make the "en_US.UTF-8" locale so postgres will be utf-8 enabled by default @@ -16,24 +16,44 @@ RUN apt-get update && apt-get install -y locales && rm -rf /var/lib/apt/lists/* && localedef -i en_US -c -f UTF-8 -A /usr/share/locale/locale.alias en_US.UTF-8 ENV LANG en_US.utf8 -RUN apt-key adv --keyserver keyserver.ubuntu.com --recv-keys B97B0AFCAA1A47F044F244A07FCC7D46ACCC4CF8 - #################################################################################################################################### # http://apt.postgresql.org/pub/repos/apt/pool/9.5/p/postgresql-9.5/ #################################################################################################################################### ENV PG_MAJOR 9.5 -RUN echo 'deb http://apt.postgresql.org/pub/repos/apt/ bullseye-pgdg main' $PG_MAJOR > /etc/apt/sources.list.d/pgdg.list && \ - echo 'deb http://apt.postgresql.org/pub/repos/apt/ bullseye-pgdg-snapshot main' $PG_MAJOR >> /etc/apt/sources.list.d/pgdg.list && \ - echo 'deb http://apt.postgresql.org/pub/repos/apt/ bullseye-pgdg-testing main' $PG_MAJOR >> /etc/apt/sources.list.d/pgdg.list +RUN install -d /usr/share/postgresql-common/pgdg && \ + curl -o /usr/share/postgresql-common/pgdg/apt.postgresql.org.asc --fail https://www.postgresql.org/media/keys/ACCC4CF8.asc && \ + echo 'deb [signed-by=/usr/share/postgresql-common/pgdg/apt.postgresql.org.asc] http://apt.postgresql.org/pub/repos/apt/ bookworm-pgdg main' $PG_MAJOR > /etc/apt/sources.list.d/pgdg.list && \ + echo 'deb [signed-by=/usr/share/postgresql-common/pgdg/apt.postgresql.org.asc] http://apt.postgresql.org/pub/repos/apt/ bookworm-pgdg-snapshot main' $PG_MAJOR >> /etc/apt/sources.list.d/pgdg.list && \ + echo 'deb [signed-by=/usr/share/postgresql-common/pgdg/apt.postgresql.org.asc] http://apt.postgresql.org/pub/repos/apt/ bookworm-pgdg-testing main' $PG_MAJOR >> /etc/apt/sources.list.d/pgdg.listt RUN apt-get update \ && apt-get install -y postgresql-common \ && sed -ri 's/#(create_main_cluster) .*$/\1 = false/' /etc/postgresql-common/createcluster.conf \ && apt-get install -y \ postgresql-$PG_MAJOR \ + postgresql-server-dev-$PG_MAJOR \ postgresql-contrib-$PG_MAJOR \ - && rm -rf /var/lib/apt/lists/* + postgresql-client-8.2 \ + postgresql-client-8.3 \ + postgresql-client-8.4 \ + postgresql-client-9.0 \ + postgresql-client-9.1 \ + postgresql-client-9.2 \ + postgresql-client-9.3 \ + postgresql-client-9.4 \ + postgresql-client-9.5 \ + postgresql-client-9.6 \ + postgresql-client-10 \ + postgresql-client-11 \ + postgresql-client-12 \ + postgresql-client-13 \ + postgresql-client-14 \ + postgresql-client-15 \ + postgresql-client-16 \ + && rm -rf /var/lib/apt/lists/* \ + && rm -rf /tmp/* + RUN mkdir /docker-entrypoint-initdb.d RUN mkdir -p /var/run/postgresql && chown -R postgres /var/run/postgresql diff --git a/linux/ecosystem/postgres/9.6/Dockerfile b/linux/ecosystem/postgres/9.6/Dockerfile index 5ab787dcf..7a279642c 100644 --- a/linux/ecosystem/postgres/9.6/Dockerfile +++ b/linux/ecosystem/postgres/9.6/Dockerfile @@ -1,4 +1,4 @@ -FROM epicmorg/debian:bullseye +FROM epicmorg/debian:bookworm LABEL maintainer="EpicMorg DevTeam, developer@epicm.org" ARG DEBIAN_FRONTEND=noninteractive @@ -6,7 +6,7 @@ ARG DEBIAN_FRONTEND=noninteractive # add our user and group first to make sure their IDs get assigned consistently, regardless of whatever dependencies get added #################################################################################################################################### -RUN groupadd -r postgres && useradd -r -g postgres postgres +RUN groupadd -r postgres && useradd -m -r -g postgres -s /bin/bash postgres #################################################################################################################################### # make the "en_US.UTF-8" locale so postgres will be utf-8 enabled by default @@ -16,24 +16,44 @@ RUN apt-get update && apt-get install -y locales && rm -rf /var/lib/apt/lists/* && localedef -i en_US -c -f UTF-8 -A /usr/share/locale/locale.alias en_US.UTF-8 ENV LANG en_US.utf8 -RUN apt-key adv --keyserver keyserver.ubuntu.com --recv-keys B97B0AFCAA1A47F044F244A07FCC7D46ACCC4CF8 - #################################################################################################################################### # http://apt.postgresql.org/pub/repos/apt/pool/9.6/p/postgresql-9.6/ #################################################################################################################################### ENV PG_MAJOR 9.6 -RUN echo 'deb http://apt.postgresql.org/pub/repos/apt/ bullseye-pgdg main' $PG_MAJOR > /etc/apt/sources.list.d/pgdg.list && \ - echo 'deb http://apt.postgresql.org/pub/repos/apt/ bullseye-pgdg-snapshot main' $PG_MAJOR >> /etc/apt/sources.list.d/pgdg.list && \ - echo 'deb http://apt.postgresql.org/pub/repos/apt/ bullseye-pgdg-testing main' $PG_MAJOR >> /etc/apt/sources.list.d/pgdg.list +RUN install -d /usr/share/postgresql-common/pgdg && \ + curl -o /usr/share/postgresql-common/pgdg/apt.postgresql.org.asc --fail https://www.postgresql.org/media/keys/ACCC4CF8.asc && \ + echo 'deb [signed-by=/usr/share/postgresql-common/pgdg/apt.postgresql.org.asc] http://apt.postgresql.org/pub/repos/apt/ bookworm-pgdg main' $PG_MAJOR > /etc/apt/sources.list.d/pgdg.list && \ + echo 'deb [signed-by=/usr/share/postgresql-common/pgdg/apt.postgresql.org.asc] http://apt.postgresql.org/pub/repos/apt/ bookworm-pgdg-snapshot main' $PG_MAJOR >> /etc/apt/sources.list.d/pgdg.list && \ + echo 'deb [signed-by=/usr/share/postgresql-common/pgdg/apt.postgresql.org.asc] http://apt.postgresql.org/pub/repos/apt/ bookworm-pgdg-testing main' $PG_MAJOR >> /etc/apt/sources.list.d/pgdg.listt RUN apt-get update \ && apt-get install -y postgresql-common \ && sed -ri 's/#(create_main_cluster) .*$/\1 = false/' /etc/postgresql-common/createcluster.conf \ && apt-get install -y \ postgresql-$PG_MAJOR \ + postgresql-server-dev-$PG_MAJOR \ postgresql-contrib-$PG_MAJOR \ - && rm -rf /var/lib/apt/lists/* + postgresql-client-8.2 \ + postgresql-client-8.3 \ + postgresql-client-8.4 \ + postgresql-client-9.0 \ + postgresql-client-9.1 \ + postgresql-client-9.2 \ + postgresql-client-9.3 \ + postgresql-client-9.4 \ + postgresql-client-9.5 \ + postgresql-client-9.6 \ + postgresql-client-10 \ + postgresql-client-11 \ + postgresql-client-12 \ + postgresql-client-13 \ + postgresql-client-14 \ + postgresql-client-15 \ + postgresql-client-16 \ + && rm -rf /var/lib/apt/lists/* \ + && rm -rf /tmp/* + RUN mkdir /docker-entrypoint-initdb.d RUN mkdir -p /var/run/postgresql && chown -R postgres /var/run/postgresql diff --git a/linux/ecosystem/postgres/latest/Dockerfile b/linux/ecosystem/postgres/latest/Dockerfile index b6685f930..c9640a0d6 100644 --- a/linux/ecosystem/postgres/latest/Dockerfile +++ b/linux/ecosystem/postgres/latest/Dockerfile @@ -6,7 +6,7 @@ ARG DEBIAN_FRONTEND=noninteractive # add our user and group first to make sure their IDs get assigned consistently, regardless of whatever dependencies get added #################################################################################################################################### -RUN groupadd -r postgres && useradd -r -g postgres postgres +RUN groupadd -r postgres && useradd -m -r -g postgres -s /bin/bash postgres #################################################################################################################################### # make the "en_US.UTF-8" locale so postgres will be utf-8 enabled by default @@ -16,19 +16,21 @@ RUN apt-get update && apt-get install -y locales && rm -rf /var/lib/apt/lists/* && localedef -i en_US -c -f UTF-8 -A /usr/share/locale/locale.alias en_US.UTF-8 ENV LANG en_US.utf8 -#RUN apt-key adv --keyserver keyserver.ubuntu.com --recv-keys B97B0AFCAA1A47F044F244A07FCC7D46ACCC4CF8 - #################################################################################################################################### -# http://apt.postgresql.org/pub/repos/apt/pool/15/p/postgresql-15/ +# http://apt.postgresql.org/pub/repos/apt/pool/15/p/postgresql-16/ +# https://docs.timescale.com/self-hosted/latest/upgrades/upgrade-pg/ #################################################################################################################################### ENV PG_MAJOR 16 ENV PG_STATS 2.1 RUN install -d /usr/share/postgresql-common/pgdg && \ + install -d /usr/share/timescaledb-common/gpg && \ curl -o /usr/share/postgresql-common/pgdg/apt.postgresql.org.asc --fail https://www.postgresql.org/media/keys/ACCC4CF8.asc && \ echo 'deb [signed-by=/usr/share/postgresql-common/pgdg/apt.postgresql.org.asc] http://apt.postgresql.org/pub/repos/apt/ bookworm-pgdg main' $PG_MAJOR > /etc/apt/sources.list.d/pgdg.list && \ echo 'deb [signed-by=/usr/share/postgresql-common/pgdg/apt.postgresql.org.asc] http://apt.postgresql.org/pub/repos/apt/ bookworm-pgdg-snapshot main' $PG_MAJOR >> /etc/apt/sources.list.d/pgdg.list && \ - echo 'deb [signed-by=/usr/share/postgresql-common/pgdg/apt.postgresql.org.asc] http://apt.postgresql.org/pub/repos/apt/ bookworm-pgdg-testing main' $PG_MAJOR >> /etc/apt/sources.list.d/pgdg.list + echo 'deb [signed-by=/usr/share/postgresql-common/pgdg/apt.postgresql.org.asc] http://apt.postgresql.org/pub/repos/apt/ bookworm-pgdg-testing main' $PG_MAJOR >> /etc/apt/sources.list.d/pgdg.listt && \ + curl -fsSL https://packagecloud.io/timescale/timescaledb/gpgkey | gpg --dearmor > /usr/share/timescaledb-common/gpg/apt.timescaledb.gpg && \ + echo 'deb [signed-by=/usr/share/timescaledb-common/gpg/apt.timescaledb.gpg] https://packagecloud.io/timescale/timescaledb/debian/ bookworm main' | sudo tee /etc/apt/sources.list.d/timescaledb.list RUN apt-get update \ && apt-get install -y postgresql-common \ @@ -117,7 +119,7 @@ RUN apt-get update \ postgresql-$PG_MAJOR-omnidb \ postgresql-$PG_MAJOR-numeral \ postgresql-$PG_MAJOR-mysql-fdw \ - postgresql-$PG_MAJOR-mobilitydb \ + # postgresql-$PG_MAJOR-mobilitydb \ postgresql-$PG_MAJOR-mimeo \ postgresql-$PG_MAJOR-londiste-sql \ postgresql-$PG_MAJOR-jsquery \ @@ -155,6 +157,7 @@ RUN apt-get update \ postgresql-client-14 \ postgresql-client-15 \ postgresql-client-16 \ + timescaledb-2-postgresql-$PG_MAJOR \ && rm -rf /var/lib/apt/lists/* RUN cd /tmp \ diff --git a/linux/ecosystem/qbittorrent/testing/.env b/linux/ecosystem/qbittorrent/testing/.env new file mode 100644 index 000000000..f55913d76 --- /dev/null +++ b/linux/ecosystem/qbittorrent/testing/.env @@ -0,0 +1,2 @@ +QBT_RELEASE=5.0.0beta1 +LT2_RELEASE=RC_2_0 diff --git a/linux/ecosystem/qbittorrent/testing/Dockerfile b/linux/ecosystem/qbittorrent/testing/Dockerfile new file mode 100644 index 000000000..2852ab280 --- /dev/null +++ b/linux/ecosystem/qbittorrent/testing/Dockerfile @@ -0,0 +1,62 @@ +FROM epicmorg/debian:bookworm +LABEL maintainer="EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG QBT_RELEASE +ARG LT_RELEASE +ENV QBT_VERSION=${QBT_RELEASE} +ENV QBT_LIBTORRENT_VERSION=${LT_RELEASE} +ENV QBT_URL=https://github.com/userdocs/qbittorrent-nox-static-test/releases/download/release-${QBT_VERSION}_${QBT_LIBTORRENT_VERSION}/x86_64-qbittorrent-nox + +ENV QBT_DIR=/opt/qbittorrent +ENV QBT_PORT_WEBUI=8282 +ENV QBT_PORT_TRACKER=9000 +ENV QBT_PORT_NAT=1337 +ENV QBT_PROTOCOL=http + +################################################################## +# Files and folders +################################################################## +RUN mkdir -p ${QBT_DIR} + +############################# #################################### +# qbittorrent install +################################################################## +RUN wget --no-check-certificate -nv --random-wait --retry-connrefused --continue ${QBT_URL} -O /usr/bin/qbittorrent-nox && \ + chmod +x /usr/bin/qbittorrent-nox && \ + qbittorrent-nox --version + +################################################################## +# other customisations +################################################################## + + +################################################################## +# cleaninig up +################################################################## +RUN apt clean -y && \ + apt autoclean -y && \ + rm -rf /var/lib/apt/lists/* && \ + rm -rf /var/cache/apt/archives/*.deb && \ + rm -rf /builds/* && \ + rm -rf /valve/* + +VOLUME ${QBT_DIR} + +#healthcheck. good practice +HEALTHCHECK --interval=2m --timeout=3s CMD curl --insecure -f ${QBT_PROTOCOL}://localhost:${QBT_PORT_WEBUI}/ || exit 1 + +# Add image configuration and scripts +COPY docker-entrypoint.sh /usr/bin/docker-entrypoint.sh +RUN chmod 755 /usr/bin/docker-entrypoint.sh + +#Final config +EXPOSE ${QBT_PORT_WEBUI} ${QBT_PORT_WEBUI}/udp ${QBT_PORT_NAT} ${QBT_PORT_NAT}/udp ${QBT_PORT_TRACKER} ${QBT_PORT_TRACKER}/udp + +ENTRYPOINT ["tini", "-s", "--", "docker-entrypoint.sh"] +CMD ["docker-entrypoint.sh"] diff --git a/linux/ecosystem/qbittorrent/testing/Makefile b/linux/ecosystem/qbittorrent/testing/Makefile new file mode 100644 index 000000000..bb1725b98 --- /dev/null +++ b/linux/ecosystem/qbittorrent/testing/Makefile @@ -0,0 +1,29 @@ +all: app + +app: + make build + make deploy + make clean + +build: + make qbt-libtorrent2 + make qbt + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af + +qbt: + docker-compose build --compress --parallel --progress plain qbt + docker-compose push qbt + +qbt-libtorrent2: + docker-compose build --compress --parallel --progress plain qbt-libtorrent2 + docker-compose push qbt-libtorrent2 + diff --git a/linux/ecosystem/qbittorrent/testing/README.md b/linux/ecosystem/qbittorrent/testing/README.md new file mode 100644 index 000000000..2e7cd4855 --- /dev/null +++ b/linux/ecosystem/qbittorrent/testing/README.md @@ -0,0 +1,80 @@ +## Build info + +The [Qbittorrent](https://www.qbittorrent.org/) project aims to provide an open-source software alternative to µTorrent. qBittorrent is based on the Qt toolkit and libtorrent-rasterbar library. + +[![qbittorrent](https://github.com/EpicMorg/docker-scripts/raw/master/qbittorrent/qbittorrent-icon.png)](https://www.qbittorrent.org/) + + +All presented images avalible on our repo in docker hub. + +* qbittorrent `latest`, `stable` and `unstable` images are also avalible here. + +### Environments + +````` +QBT_PROFILES_DIR=/opt/qbittorrent/profiles +QBT_PROFILE_NAME=docker +QBT_PORT_WEBUI=8282 +QBT_PORT_NAT=1337 +QBT_PORT_TRACKER=9000 +````` + +### Exampe + +``` yaml +version: '3.9' +services: + qbittorrent: + image: epicmorg/qbittorrent:latest + container_name: qbittorrent + hostname: qbittorrent + restart: always + ports: + - "8282:8282" + - "1337:1337/udp" + - "1337:1337/tcp" + - "9000:9000/udp" + - "9000:9000/tcp" + cap_add: + - ALL + volumes: + - /etc/letsencrypt:/etc/letsencrypt + - /opt/docker/data/qbt/profiles:/opt/qbittorrent/profiles + environment: + - QBT_PROFILE_NAME=docker + - QBT_PORT_WEBUI=8282 + - QBT_PORT_NAT=1337 + - QBT_PORT_TRACKER=9000 + tmpfs: + - /tmp +``` + + +### Ngnix + +``` +server { + + listen 443 ssl http2; + + server_name torrent.domain.tld; + + ssl_certificate /etc/ssl/torrent.domain.tld.fullchain.crt; + ssl_certificate_key /etc/ssl/torrent.domain.tld.key; + + location / { + + proxy_pass http://qbittorrent:8282; + proxy_http_version 1.1; + + proxy_set_header Host 127.0.0.1:8282; + proxy_set_header X-Forwarded-Host $http_host; + proxy_set_header X-Forwarded-For $remote_addr; + proxy_cookie_path / "/; Secure"; + + client_max_body_size 0; + + } +} + +``` diff --git a/linux/ecosystem/qbittorrent/testing/docker-compose.example.yml b/linux/ecosystem/qbittorrent/testing/docker-compose.example.yml new file mode 100644 index 000000000..087b81725 --- /dev/null +++ b/linux/ecosystem/qbittorrent/testing/docker-compose.example.yml @@ -0,0 +1,18 @@ +version: '3' +services: + qbittorrent: + image: epicmorg/qbittorrent:latest + restart: always + container_name: qbittorrent + ports: + - "0.0.0.0:8282:8282" + volumes: + - /etc/localtime:/etc/localtime + - /etc/timezone:/etc/timezone + - /etc/letsencrypt:/etc/letsencrypt + - /opt/qbittorrent/profiles:/opt/qbittorrent/profiles + tmpfs: + - /tmp + environment: + - QBT_PROFILE_NAME=docker + diff --git a/linux/ecosystem/qbittorrent/testing/docker-compose.yml b/linux/ecosystem/qbittorrent/testing/docker-compose.yml new file mode 100644 index 000000000..98c5daeef --- /dev/null +++ b/linux/ecosystem/qbittorrent/testing/docker-compose.yml @@ -0,0 +1,16 @@ +version: '3' +services: + qbt: + image: "epicmorg/qbittorrent:${QBT_RELEASE}" + build: + context: . + args: + QBT_RELEASE: ${QBT_RELEASE} + LT_RELEASE: ${LT2_RELEASE} + qbt-libtorrent2: + image: "epicmorg/qbittorrent:${QBT_RELEASE}-libtorrent${LT2_RELEASE}" + build: + context: . + args: + QBT_RELEASE: ${QBT_RELEASE} + LT_RELEASE: ${LT2_RELEASE} diff --git a/linux/ecosystem/qbittorrent/testing/docker-entrypoint.sh b/linux/ecosystem/qbittorrent/testing/docker-entrypoint.sh new file mode 100755 index 000000000..d916b0e86 --- /dev/null +++ b/linux/ecosystem/qbittorrent/testing/docker-entrypoint.sh @@ -0,0 +1,15 @@ +#!/bin/bash + +: ${QBT_DIR:=/opt/qbittorrent} +: ${QBT_PROFILES_DIR:=/opt/qbittorrent/profiles} +: ${QBT_PROFILE_NAME:=docker} +: ${QBT_PORT_WEBUI:=8282} +: ${QBT_PORT_NAT:=1337} +: ${QBT_PORT_TRACKER:=9000} + +echo "======================================================" +echo "[qbittorrent] Starting `qbittorrent-nox -v`..." +echo "======================================================" + +tail -n 512 -f ${QBT_PROFILES_DIR}/qBittorrent_${QBT_PROFILE_NAME}/data/logs/* & +exec qbittorrent-nox --profile=${QBT_PROFILES_DIR} --configuration=${QBT_PROFILE_NAME} --webui-port=${QBT_PORT_WEBUI} diff --git a/linux/ecosystem/qbittorrent/testing/qbittorrent-icon.png b/linux/ecosystem/qbittorrent/testing/qbittorrent-icon.png new file mode 100644 index 000000000..77d06fd31 Binary files /dev/null and b/linux/ecosystem/qbittorrent/testing/qbittorrent-icon.png differ diff --git a/linux/ecosystem/teamcity/agent/android-sdk/jdk8/Dockerfile b/linux/ecosystem/teamcity/agent/android-sdk/jdk8/Dockerfile new file mode 100644 index 000000000..1416dfb1e --- /dev/null +++ b/linux/ecosystem/teamcity/agent/android-sdk/jdk8/Dockerfile @@ -0,0 +1,555 @@ +FROM epicmorg/teamcity-agent:latest-jdk8 +LABEL maintainer="EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +ENV ANDROID_HOME=/usr/lib/android-sdk +ENV ANDROID_SDK_ROOT=/usr/lib/android-sdk + +ENV PATH=$PATH:${ANDROID_SDK_ROOT}/cmdline-tools/latest/bin:${ANDROID_SDK_ROOT}/platform-tools:$ANDROID_SDK_ROOT/tools/bin + +################################################################## +# Android SDK +################################################################## +RUN apt update && \ + apt install -y --allow-unauthenticated \ + maven \ + android-sdk \ + sdkmanager \ + android-sdk-build-tools \ + android-sdk-platform-tools-common \ + android-sdk-platform-tools \ + adb fastboot f2fs-tools e2fsprogs libsqlite3-0 sqlite3 && \ + apt remove -y gradle && \ + sdkmanager --version && \ + mvn -v + +# Install ALL ANDROID SDK +RUN sdkmanager --install \ + "build-tools;17.0.0" \ + "build-tools;18.0.0" \ + "build-tools;18.0.1" \ + "build-tools;18.1.0" \ + "build-tools;18.1.1" \ + "build-tools;19.0.0" \ + "build-tools;19.0.1" \ + "build-tools;19.0.2" \ + "build-tools;19.0.3" \ + "build-tools;19.1.0" \ + "build-tools;20.0.0" \ + "build-tools;21.0.0" \ + "build-tools;21.0.1" \ + "build-tools;21.0.2" \ + "build-tools;21.1.0" \ + "build-tools;21.1.1" \ + "build-tools;21.1.2" \ + "build-tools;22.0.0" \ + "build-tools;22.0.1" \ + "build-tools;23.0.0" \ + "build-tools;23.0.1" \ + "build-tools;23.0.2" \ + "build-tools;23.0.3" \ + "build-tools;24.0.0" \ + "build-tools;24.0.1" \ + "build-tools;24.0.2" \ + "build-tools;24.0.3" \ + "build-tools;25.0.0" \ + "build-tools;25.0.1" \ + "build-tools;25.0.2" \ + "build-tools;25.0.3" \ + "build-tools;26.0.0" \ + "build-tools;26.0.0-rc1" \ + "build-tools;26.0.0-rc2" \ + "build-tools;26.0.1" \ + "build-tools;26.0.2" \ + "build-tools;26.0.3" \ + "build-tools;27.0.0" \ + "build-tools;27.0.1" \ + "build-tools;27.0.2" \ + "build-tools;27.0.3" \ + "build-tools;28.0.0" \ + "build-tools;28.0.0-rc1" \ + "build-tools;28.0.0-rc2" \ + "build-tools;28.0.1" \ + "build-tools;28.0.2" \ + "build-tools;28.0.3" \ + "build-tools;29.0.0" \ + "build-tools;29.0.0-rc1" \ + "build-tools;29.0.0-rc2" \ + "build-tools;29.0.0-rc3" \ + "build-tools;29.0.1" \ + "build-tools;29.0.2" \ + "build-tools;29.0.3" \ + "build-tools;30.0.0" \ + "build-tools;30.0.0-rc1" \ + "build-tools;30.0.0-rc2" \ + "build-tools;30.0.0-rc3" \ + "build-tools;30.0.0-rc4" \ + "build-tools;30.0.1" \ + "build-tools;30.0.2" \ + "build-tools;30.0.3" \ + "build-tools;31.0.0" \ + "build-tools;31.0.0-rc1" \ + "build-tools;31.0.0-rc2" \ + "build-tools;31.0.0-rc3" \ + "build-tools;31.0.0-rc4" \ + "build-tools;31.0.0-rc5" \ + "build-tools;32.0.0" \ + "build-tools;32.1.0-rc1" \ + "build-tools;33.0.0" \ + "build-tools;33.0.0-rc1" \ + "build-tools;33.0.0-rc2" \ + "build-tools;33.0.0-rc3" \ + "build-tools;33.0.0-rc4" \ + "build-tools;33.0.1" \ + "build-tools;33.0.2" \ + "build-tools;34.0.0" \ + "build-tools;34.0.0-rc1" \ + "build-tools;34.0.0-rc2" \ + "build-tools;34.0.0-rc3" \ + "build-tools;34.0.0-rc4" + + +RUN sdkmanager --install \ + "cmake;3.10.2.4988404" \ + "cmake;3.18.1" \ + "cmake;3.22.1" \ + "cmake;3.6.4111459" + +RUN sdkmanager --install \ + "cmdline-tools;1.0" \ + "cmdline-tools;1.0-alpha01" \ + "cmdline-tools;10.0-beta04" \ + "cmdline-tools;11.0-alpha07" \ + "cmdline-tools;2.0" \ + "cmdline-tools;2.0-rc01" \ + "cmdline-tools;2.1" \ + "cmdline-tools;3.0" \ + "cmdline-tools;3.0-beta01" \ + "cmdline-tools;4.0" \ + "cmdline-tools;4.0-alpha02" \ + "cmdline-tools;4.0-beta01" \ + "cmdline-tools;5.0" \ + "cmdline-tools;5.0-alpha01" \ + "cmdline-tools;6.0" \ + "cmdline-tools;7.0" \ + "cmdline-tools;8.0" \ + "cmdline-tools;9.0" \ + "cmdline-tools;latest" + +RUN sdkmanager --install \ + "extras;android;m2repository" \ + "extras;android;m2repository;01" \ + "extras;android;m2repository;02" \ + "extras;android;m2repository;03" \ + "extras;android;m2repository;04" \ + "extras;android;m2repository;06" \ + "extras;android;m2repository;07" \ + "extras;android;m2repository;08" \ + "extras;android;m2repository;09" \ + "extras;android;m2repository;1" \ + "extras;android;m2repository;10" \ + "extras;android;m2repository;11" \ + "extras;android;m2repository;12" \ + "extras;android;m2repository;13" \ + "extras;android;m2repository;14" \ + "extras;android;m2repository;15" \ + "extras;android;m2repository;16" \ + "extras;android;m2repository;17" \ + "extras;android;m2repository;18" \ + "extras;android;m2repository;19" \ + "extras;android;m2repository;2" \ + "extras;android;m2repository;20" \ + "extras;android;m2repository;21" \ + "extras;android;m2repository;22" \ + "extras;android;m2repository;23" \ + "extras;android;m2repository;24" \ + "extras;android;m2repository;25" \ + "extras;android;m2repository;26" \ + "extras;android;m2repository;27" \ + "extras;android;m2repository;28" \ + "extras;android;m2repository;29" \ + "extras;android;m2repository;3" \ + "extras;android;m2repository;30" \ + "extras;android;m2repository;31" \ + "extras;android;m2repository;32" \ + "extras;android;m2repository;33" \ + "extras;android;m2repository;34" \ + "extras;android;m2repository;35" \ + "extras;android;m2repository;36" \ + "extras;android;m2repository;37" \ + "extras;android;m2repository;38" \ + "extras;android;m2repository;39" \ + "extras;android;m2repository;4" \ + "extras;android;m2repository;40" \ + "extras;android;m2repository;41" \ + "extras;android;m2repository;42" \ + "extras;android;m2repository;43" \ + "extras;android;m2repository;44" \ + "extras;android;m2repository;45" \ + "extras;android;m2repository;46" \ + "extras;android;m2repository;47" \ + "extras;android;m2repository;6" \ + "extras;android;m2repository;7" \ + "extras;android;m2repository;8" \ + "extras;android;m2repository;9" + +RUN sdkmanager --install \ + "platform-tools" \ + "platform-tools;24.0.0" \ + "platform-tools;29.0.5" \ + "platform-tools;29.0.6" \ + "platform-tools;30.0.0" \ + "platform-tools;30.0.1" \ + "platform-tools;30.0.2" \ + "platform-tools;30.0.3" \ + "platform-tools;30.0.4" \ + "platform-tools;30.0.5" \ + "platform-tools;31.0.0" \ + "platform-tools;31.0.1" \ + "platform-tools;31.0.2" \ + "platform-tools;31.0.3" \ + "platform-tools;32.0.0" \ + "platform-tools;33.0.0" \ + "platform-tools;33.0.1" \ + "platform-tools;33.0.2" \ + "platform-tools;33.0.3" \ + "platform-tools;34.0.0" \ + "platform-tools;34.0.1" \ + "platform-tools;34.0.3" + +RUN sdkmanager --install \ + "platforms;android-10" \ + "platforms;android-11" \ + "platforms;android-12" \ + "platforms;android-13" \ + "platforms;android-14" \ + "platforms;android-15" \ + "platforms;android-16" \ + "platforms;android-17" \ + "platforms;android-18" \ + "platforms;android-19" \ + "platforms;android-20" \ + "platforms;android-21" \ + "platforms;android-22" \ + "platforms;android-23" \ + "platforms;android-24" \ + "platforms;android-25" \ + "platforms;android-26" \ + "platforms;android-27" \ + "platforms;android-28" \ + "platforms;android-29" \ + "platforms;android-3" \ + "platforms;android-30" \ + "platforms;android-31" \ + "platforms;android-32" \ + "platforms;android-33" \ + "platforms;android-34" \ + "platforms;android-4" \ + "platforms;android-5" \ + "platforms;android-6" \ + "platforms;android-7" \ + "platforms;android-8" \ + "platforms;android-9" + +RUN sdkmanager --install \ +# "ndk-bundle;11.0.2655954" \ +# "ndk-bundle;11.1.2683735" \ +# "ndk-bundle;11.2.2725575" \ +# "ndk-bundle;12.0.2931149" \ +# "ndk-bundle;12.1.2977051" \ +# "ndk-bundle;13.0.3315539" \ +# "ndk-bundle;13.1.3345770" \ +# "ndk-bundle;14.0.3770861" \ +# "ndk-bundle;14.1.3816874" \ +# "ndk-bundle;15.0.4075724" \ +# "ndk-bundle;15.1.4119039" \ +# "ndk-bundle;15.2.4203891" \ +# "ndk-bundle;16.0.4442984" \ +# "ndk-bundle;16.1.4479499" \ +# "ndk-bundle;17.0.4754217" \ +# "ndk-bundle;17.1.4828580" \ +# "ndk-bundle;17.2.4988734" \ +# "ndk-bundle;18.1.5063045" \ +# "ndk-bundle;19.0.5232133" \ +# "ndk-bundle;19.1.5304403" \ +# "ndk-bundle;19.2.5345600" \ +# "ndk-bundle;20.0.5392854-beta2" \ +# "ndk-bundle;20.0.5471264-beta3" \ +# "ndk-bundle;20.0.5594570" \ +# "ndk-bundle;20.1.5948944" \ +# "ndk-bundle;21.0.6011959-beta2" \ +# "ndk-bundle;21.0.6113669" \ +# "ndk-bundle;21.1.6210238-beta1" \ +# "ndk-bundle;21.1.6273396-beta2" \ +# "ndk-bundle;21.1.6352462" \ +# "ndk-bundle;21.1.6363665-beta3" \ +# "ndk-bundle;21.2.6472646" \ +# "ndk-bundle;21.3.6528147" \ +# "ndk-bundle;21.4.7075529" \ +# "ndk-bundle;22.0.6917172-beta1" \ +# "ndk-bundle;22.0.7026061" \ +# "ndk-bundle;22.1.7171670" \ +# "ndk-bundle;23.0.7123448-beta1" \ +# "ndk-bundle;23.0.7196353-beta2" \ +# "ndk-bundle;23.0.7272597-beta3" \ +# "ndk-bundle;23.0.7344513-beta4" \ +# "ndk-bundle;23.0.7421159-beta5" \ +# "ndk-bundle;23.0.7530507-beta6" \ +# "ndk-bundle;23.0.7599858" \ +# "ndk-bundle;23.1.7779620" \ +# "ndk-bundle;23.2.8568313" \ +# "ndk-bundle;24.0.7856742-beta1" \ +# "ndk-bundle;24.0.7956693-beta2" \ +# "ndk-bundle;24.0.8079956-beta3" \ +# "ndk-bundle;24.0.8215888" \ +# "ndk-bundle;25.0.8141415-beta1" \ +# "ndk-bundle;25.0.8221429-beta2" \ +# "ndk-bundle;25.0.8355429-beta3" \ +# "ndk-bundle;25.0.8528842-beta4" \ + "ndk-bundle;25.0.8775105" \ + "ndk-bundle;25.1.8937393" \ + "ndk-bundle;25.2.9519653" + +RUN sdkmanager --install \ +# "ndk-bundle;r10e" \ +# "ndk-bundle;r11" \ +# "ndk-bundle;r11b" \ +# "ndk-bundle;r11c" \ +# "ndk-bundle;r12" \ +# "ndk-bundle;r12b" \ +# "ndk-bundle;r13" \ +# "ndk-bundle;r13b" \ +# "ndk-bundle;r14" \ +# "ndk-bundle;r14b" \ +# "ndk-bundle;r15" \ +# "ndk-bundle;r15b" \ +# "ndk-bundle;r15c" \ +# "ndk-bundle;r16" \ +# "ndk-bundle;r16b" \ +# "ndk-bundle;r17" \ +# "ndk-bundle;r17b" \ +# "ndk-bundle;r17c" \ +# "ndk-bundle;r18b" \ +# "ndk-bundle;r19" \ +# "ndk-bundle;r19b" \ +# "ndk-bundle;r19c" \ +# "ndk-bundle;r20" \ +# "ndk-bundle;r20-beta2" \ +# "ndk-bundle;r20-beta3" \ +# "ndk-bundle;r20b" \ +# "ndk-bundle;r21" \ +# "ndk-bundle;r21-beta2" \ +# "ndk-bundle;r21b" \ +# "ndk-bundle;r21b-beta1" \ +# "ndk-bundle;r21b-beta2" \ +# "ndk-bundle;r21b-beta3" \ +# "ndk-bundle;r21c" \ +# "ndk-bundle;r21d" \ +# "ndk-bundle;r21e" \ +# "ndk-bundle;r22" \ +# "ndk-bundle;r22-beta1" \ +# "ndk-bundle;r22b" \ +# "ndk-bundle;r23" \ +# "ndk-bundle;r23-beta1" \ +# "ndk-bundle;r23-beta2" \ +# "ndk-bundle;r23-beta3" \ +# "ndk-bundle;r23-beta4" \ +# "ndk-bundle;r23-beta5" \ +# "ndk-bundle;r23-beta6" \ +# "ndk-bundle;r23b" \ +# "ndk-bundle;r23c" \ +# "ndk-bundle;r24" \ +# "ndk-bundle;r24-beta1" \ +# "ndk-bundle;r24-beta2" \ +# "ndk-bundle;r24-rc1" \ + "ndk-bundle;r25" \ +# "ndk-bundle;r25-beta1" \ +# "ndk-bundle;r25-beta2" \ +# "ndk-bundle;r25-beta3" \ +# "ndk-bundle;r25-beta4" \ +# "ndk-bundle;r25b" \ + "ndk-bundle;r25c" + +RUN sdkmanager --install \ +# "ndk;11.0.2655954" \ +# "ndk;11.1.2683735" \ +# "ndk;11.2.2725575" \ +# "ndk;12.0.2931149" \ +# "ndk;12.1.2977051" \ +# "ndk;13.0.3315539" \ +# "ndk;13.1.3345770" \ +# "ndk;14.0.3770861" \ +# "ndk;14.1.3816874" \ +# "ndk;15.0.4075724" \ +# "ndk;15.1.4119039" \ +# "ndk;15.2.4203891" \ +# "ndk;16.0.4442984" \ +# "ndk;16.1.4479499" \ +# "ndk;17.0.4754217" \ +# "ndk;17.1.4828580" \ +# "ndk;17.2.4988734" \ +# "ndk;18.1.5063045" \ +# "ndk;19.0.5232133" \ +# "ndk;19.1.5304403" \ +# "ndk;19.2.5345600" \ +# "ndk;20.0.5392854-beta2" \ +# "ndk;20.0.5471264-beta3" \ +# "ndk;20.0.5594570" \ +# "ndk;20.1.5948944" \ +# "ndk;21.0.6011959-beta2" \ +# "ndk;21.0.6113669" \ +# "ndk;21.1.6210238-beta1" \ +# "ndk;21.1.6273396-beta2" \ +# "ndk;21.1.6352462" \ +# "ndk;21.1.6363665-beta3" \ +# "ndk;21.2.6472646" \ +# "ndk;21.3.6528147" \ +# "ndk;21.4.7075529" \ +# "ndk;22.0.6917172-beta1" \ +# "ndk;22.0.7026061" \ +# "ndk;22.1.7171670" \ +# "ndk;23.0.7123448-beta1" \ +# "ndk;23.0.7196353-beta2" \ +# "ndk;23.0.7272597-beta3" \ +# "ndk;23.0.7344513-beta4" \ +# "ndk;23.0.7421159-beta5" \ +# "ndk;23.0.7530507-beta6" \ +# "ndk;23.0.7599858" \ +# "ndk;23.1.7779620" \ +# "ndk;23.2.8568313" \ +# "ndk;24.0.7856742-beta1" \ +# "ndk;24.0.7956693-beta2" \ +# "ndk;24.0.8079956-beta3" \ +# "ndk;24.0.8215888" \ +# "ndk;25.0.8141415-beta1" \ +# "ndk;25.0.8221429-beta2" \ +# "ndk;25.0.8355429-beta3" \ +# "ndk;25.0.8528842-beta4" \ + "ndk;25.0.8775105" \ + "ndk;25.1.8937393" \ + "ndk;25.2.9519653" + +RUN sdkmanager --install \ +# "ndk;r10e" \ +# "ndk;r11" \ +# "ndk;r11b" \ +# "ndk;r11c" \ +# "ndk;r12" \ +# "ndk;r12b" \ +# "ndk;r13" \ +# "ndk;r13b" \ +# "ndk;r14" \ +# "ndk;r14b" \ +# "ndk;r15" \ +# "ndk;r15b" \ +# "ndk;r15c" \ +# "ndk;r16" \ +# "ndk;r16b" \ +# "ndk;r17" \ +# "ndk;r17b" \ +# "ndk;r17c" \ +# "ndk;r18b" \ +# "ndk;r19" \ +# "ndk;r19b" \ +# "ndk;r19c" \ +# "ndk;r20" \ +# "ndk;r20-beta2" \ +# "ndk;r20-beta3" \ +# "ndk;r20b" \ +# "ndk;r21" \ +# "ndk;r21-beta2" \ +# "ndk;r21b" \ +# "ndk;r21b-beta1" \ +# "ndk;r21b-beta2" \ +# "ndk;r21b-beta3" \ +# "ndk;r21c" \ +# "ndk;r21d" \ +# "ndk;r21e" \ +# "ndk;r22" \ +# "ndk;r22-beta1" \ +# "ndk;r22b" \ +# "ndk;r23" \ +# "ndk;r23-beta1" \ +# "ndk;r23-beta2" \ +# "ndk;r23-beta3" \ +# "ndk;r23-beta4" \ +# "ndk;r23-beta5" \ +# "ndk;r23-beta6" \ +# "ndk;r23b" \ +# "ndk;r23c" \ +# "ndk;r24" \ +# "ndk;r24-beta1" \ +# "ndk;r24-beta2" \ +# "ndk;r24-rc1" \ + "ndk;r25" \ +# "ndk;r25-beta1" \ +# "ndk;r25-beta2" \ +# "ndk;r25-beta3" \ +# "ndk;r25-beta4" \ +# "ndk;r25b" \ + "ndk;r25c" + +RUN sdkmanager --install \ + "tools" \ + "tools;20.0.1" \ + "tools;20.0.3" \ + "tools;21.0.1" \ + "tools;22.0.1" \ + "tools;22.0.4" \ + "tools;22.0.5" \ + "tools;22.2.1" \ + "tools;22.6.1" \ + "tools;22.6.2" \ + "tools;22.6.3" \ + "tools;22.6.4" \ + "tools;23.0.1" \ + "tools;23.0.2" \ + "tools;23.0.4" \ + "tools;23.0.5" \ + "tools;24.0.1" \ + "tools;24.0.2" \ + "tools;24.1.2" \ + "tools;24.3.1" \ + "tools;24.3.2" \ + "tools;24.3.3" \ + "tools;24.3.4" \ + "tools;24.4.1" \ + "tools;25.0.1" \ + "tools;25.0.2" \ + "tools;25.0.3" \ + "tools;25.0.4" \ + "tools;25.0.5" \ + "tools;25.0.6" \ + "tools;25.0.7" \ + "tools;25.0.8" \ + "tools;25.0.9" \ + "tools;25.1.0" \ + "tools;25.1.1" \ + "tools;25.1.2" \ + "tools;25.1.3" \ + "tools;25.1.4" \ + "tools;25.1.5" \ + "tools;25.1.6" \ + "tools;25.1.7" \ + "tools;25.2.1" \ + "tools;25.2.2" \ + "tools;25.2.3" \ + "tools;25.2.4" \ + "tools;25.2.5" \ + "tools;26.1.1" + +# Activate android sdk +#RUN echo "24333f8a63b6825ea9c5514f83c2829b004d1fee" > /usr/lib/android-sdk/licenses/android-sdk-license +#RUN rm -rfv /usr/lib/android-sdk/licenses/* +RUN yes | sdkmanager --licenses +RUN ln -fs $ANDROID_SDK_ROOT/cmdline-tools/latest/bin/screenshot2 $ANDROID_SDK_ROOT/tools/bin/screenshot2 + +################################################################## +# cleaninig up +################################################################## +RUN apt clean -y && \ + apt-get clean all && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb && \ + rm -rfv /tmp/* diff --git a/linux/ecosystem/teamcity/agent/android-sdk/jdk8/Makefile b/linux/ecosystem/teamcity/agent/android-sdk/jdk8/Makefile new file mode 100644 index 000000000..9ef622aa9 --- /dev/null +++ b/linux/ecosystem/teamcity/agent/android-sdk/jdk8/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel --progress plain + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/teamcity/agent/android-sdk/jdk8/README.md b/linux/ecosystem/teamcity/agent/android-sdk/jdk8/README.md new file mode 100644 index 000000000..b53fe01e8 --- /dev/null +++ b/linux/ecosystem/teamcity/agent/android-sdk/jdk8/README.md @@ -0,0 +1,93 @@ +## TeamCity Minimal Build Agent + +[](https://confluence.jetbrains.com/display/ALL/JetBrains+on+GitHub) + +This is an official [JetBrains TeamCity](https://www.jetbrains.com/teamcity/) minimal build agent image. + + More details about tags and components are [here](https://github.com/JetBrains/teamcity-docker-images/blob/master/generated/teamcity-minimal-agent.md). + +The [TeamCity build agent](https://www.jetbrains.com/help/teamcity/build-agent.html) connects to the TeamCity server and spawns the actual build processes. +You can use the ```jetbrains/teamcity-server``` image to run a TeamCity server. + +This minimal image adds just a TeamCity agent without any tools like VCS clients, etc. It is suitable for simple builds and can serve as a base for your custom images. For Java or .NET development we recommend using the default build agent image [jetbrains/teamcity-agent](https://hub.docker.com/r/jetbrains/teamcity-agent/). + +## How to Use This Image + +Pull the TeamCity minimal image from the Docker Hub Repository: + +``` +jetbrains/teamcity-minimal-agent +``` +  +and use the following command to start a container with TeamCity agent running inside +a Linux container: + +``` +docker run -it -e SERVER_URL="" \ + -v :/data/teamcity_agent/conf \ + jetbrains/teamcity-minimal-agent +``` +  +or a Windows container: +``` +docker run -it -e SERVER_URL="" + -v :C:/BuildAgent/conf + jetbrains/teamcity-minimal-agent +``` +where `` is the full URL for TeamCity server, accessible by the agent. Note that `localhost` will not generally not work as it will refer to the `localhost` inside the container. +`` is the host machine directory to serve as the TeamCity agent config directory. We recommend providing this binding in order to persist the agent configuration, e.g. authorization on the server. Note that you should map a different folder for every new agent you create. + +Since version 2020.1, TeamCity agent Docker images __run under a non-root user__. Refer to our [upgrade notes](https://www.jetbrains.com/help/teamcity/upgrade-notes.html#UpgradeNotes-AgentDockerimagesrunundernon-rootuser) for information on possible affected use cases. + +When you run the agent for the first time, you should authorize it via the TeamCity server UI: go to the **Unauthorized Agents** page in your browser. See [more details](https://www.jetbrains.com/help/teamcity/build-agent.html). + +All information about agent authorization is stored in agent's configuration folder. If you stop the container with the agent and then start a new one with the same config folder, the agent's name and authorization state will be preserved. + +TeamCity agent does not need manual upgrade: it will upgrade itself automatically on connecting to an upgraded server. + +### Agent Image Environment Variables + +- **SERVER_URL** - URL of the TeamCity server agent will connect to +- **AGENT_NAME** - (optional) Name of the agent in TeamCity UI, autogenerated if omitted +- **AGENT_TOKEN** - (optional) Agent authorization token, if unset, the agent should be [authorized](https://www.jetbrains.com/help/teamcity/build-agent.html#BuildAgent-BuildAgentStatus) via TeamCity UI. +- **OWN_ADDRESS** - (optional, linux only) IP address build agent binds to, autodetected +- **OWN_PORT** - (optional, linux only) Port build agent binds to, 9090 by default + +### Windows Containers Limitations + +The details on the known problems in Windows containers are available in the [TeamCity documentation](https://www.jetbrains.com/help/teamcity/known-issues.html#KnownIssues-WindowsDockerContainers). + +## Customization + +You can customize the image via the usual Docker procedure: + +1. Run the image +``` +docker run -it -e SERVER_URL="" \ + -v :/data/teamcity_agent/conf \ + --name="my-customized-agent" \ + jetbrains/teamcity-minimal-agent \ +``` +2. Enter the container +``` +docker exec -it my-customized-agent bash +``` + +3. Change whatever you need +4. Exit and [create a new image](https://docs.docker.com/engine/reference/commandline/commit/) from the container +``` +docker commit my-customized-agent +``` + +## License + +The image is available under the [TeamCity license](https://www.jetbrains.com/teamcity/buy/license.html). +TeamCity is free for perpetual use with the limitation of 100 build configurations (jobs) and 3 agents. [Licensing details](https://www.jetbrains.com/help/teamcity/licensing-policy.html). + +## Feedback + +Report issues of suggestions to the official TeamCity [issue tracker](https://youtrack.jetbrains.com/issues/TW). + +## Other TeamCity Images +* [TeamCity Server](https://hub.docker.com/r/jetbrains/teamcity-server/) +* [Build Agent](https://hub.docker.com/r/jetbrains/teamcity-agent/) diff --git a/linux/ecosystem/teamcity/agent/android-sdk/jdk8/docker-compose.yml b/linux/ecosystem/teamcity/agent/android-sdk/jdk8/docker-compose.yml new file mode 100644 index 000000000..aa9698d87 --- /dev/null +++ b/linux/ecosystem/teamcity/agent/android-sdk/jdk8/docker-compose.yml @@ -0,0 +1,6 @@ +version: '3' +services: + app: + image: "epicmorg/teamcity-agent:android-sdk-jdk8" + build: + context: . diff --git a/linux/ecosystem/teamcity/agent/android-sdk/jdk8/sdkman.sh b/linux/ecosystem/teamcity/agent/android-sdk/jdk8/sdkman.sh new file mode 100755 index 000000000..59b74df1e --- /dev/null +++ b/linux/ecosystem/teamcity/agent/android-sdk/jdk8/sdkman.sh @@ -0,0 +1,312 @@ +#!/bin/bash +# +# Copyright 2017 Marco Vermeulen +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# + + +# install:- channel: stable; cliVersion: 5.15.0; cliNativeVersion: NA; api: https://api.sdkman.io/2 + +# Global variables +SDKMAN_SERVICE="https://api.sdkman.io/2" +SDKMAN_VERSION="5.15.0" +SDKMAN_PLATFORM=$(uname) + +if [ -z "$SDKMAN_DIR" ]; then + SDKMAN_DIR="$HOME/.sdkman" + SDKMAN_DIR_RAW='$HOME/.sdkman' +else + SDKMAN_DIR_RAW="$SDKMAN_DIR" +fi + +# Local variables +sdkman_tmp_folder="${SDKMAN_DIR}/tmp" +sdkman_zip_file="${sdkman_tmp_folder}/sdkman-${SDKMAN_VERSION}.zip" +sdkman_zip_base_folder="${sdkman_tmp_folder}/sdkman-${SDKMAN_VERSION}" +sdkman_ext_folder="${SDKMAN_DIR}/ext" +sdkman_etc_folder="${SDKMAN_DIR}/etc" +sdkman_var_folder="${SDKMAN_DIR}/var" +sdkman_archives_folder="${SDKMAN_DIR}/archives" +sdkman_candidates_folder="${SDKMAN_DIR}/candidates" +sdkman_config_file="${sdkman_etc_folder}/config" +sdkman_bash_profile="${HOME}/.bash_profile" +sdkman_profile="${HOME}/.profile" +sdkman_bashrc="${HOME}/.bashrc" +sdkman_zshrc="${ZDOTDIR:-${HOME}}/.zshrc" + +sdkman_init_snippet=$( cat << EOF +#THIS MUST BE AT THE END OF THE FILE FOR SDKMAN TO WORK!!! +export SDKMAN_DIR="$SDKMAN_DIR_RAW" +[[ -s "${SDKMAN_DIR_RAW}/bin/sdkman-init.sh" ]] && source "${SDKMAN_DIR_RAW}/bin/sdkman-init.sh" +EOF +) + +# OS specific support (must be 'true' or 'false'). +cygwin=false; +darwin=false; +solaris=false; +freebsd=false; +case "$(uname)" in + CYGWIN*) + cygwin=true + ;; + Darwin*) + darwin=true + ;; + SunOS*) + solaris=true + ;; + FreeBSD*) + freebsd=true +esac + +echo '' +echo ' -+syyyyyyys:' +echo ' `/yho:` -yd.' +echo ' `/yh/` +m.' +echo ' .oho. hy .`' +echo ' .sh/` :N` `-/o` `+dyyo:.' +echo ' .yh:` `M- `-/osysoym :hs` `-+sys: hhyssssssssy+' +echo ' .sh:` `N: ms/-`` yy.yh- -hy. `.N-````````+N.' +echo ' `od/` `N- -/oM- ddd+` `sd: hNNm -N:' +echo ' :do` .M. dMMM- `ms. /d+` `NMMs `do' +echo ' .yy- :N` ```mMMM. - -hy. /MMM: yh' +echo ' `+d+` `:/oo/` `-/osyh/ossssssdNMM` .sh: yMMN` /m.' +echo ' -dh- :ymNMMMMy `-/shmNm-`:N/-.`` `.sN /N- `NMMy .m/' +echo ' `oNs` -hysosmMMMMydmNmds+-.:ohm : sd` :MMM/ yy' +echo ' .hN+ /d: -MMMmhs/-.` .MMMh .ss+- `yy` sMMN` :N.' +echo ' :mN/ `N/ `o/-` :MMMo +MMMN- .` `ds mMMh do' +echo ' /NN/ `N+....--:/+oooosooo+:sMMM: hMMMM: `my .m+ -MMM+ :N.' +echo ' /NMo -+ooooo+/:-....`...:+hNMN. `NMMMd` .MM/ -m: oMMN. hs' +echo ' -NMd` :mm -MMMm- .s/ -MMm. /m- mMMd -N.' +echo ' `mMM/ .- /MMh. -dMo -MMMy od. .MMMs..---yh' +echo ' +MMM. sNo`.sNMM+ :MMMM/ sh`+MMMNmNm+++-' +echo ' mMMM- /--ohmMMM+ :MMMMm. `hyymmmdddo' +echo ' MMMMh. ```` `-+yy/`yMMM/ :MMMMMy -sm:.``..-:-.`' +echo ' dMMMMmo-.``````..-:/osyhddddho. `+shdh+. hMMM: :MmMMMM/ ./yy/` `:sys+/+sh/' +echo ' .dMMMMMMmdddddmmNMMMNNNNNMMMMMs sNdo- dMMM- `-/yd/MMMMm-:sy+. :hs- /N`' +echo ' `/ymNNNNNNNmmdys+/::----/dMMm: +m- mMMM+ohmo/.` sMMMMdo- .om: `sh' +echo ' `.-----+/.` `.-+hh/` `od. NMMNmds/ `mmy:` +mMy `:yy.' +echo ' /moyso+//+ossso:. .yy` `dy+:` .. :MMMN+---/oys:' +echo ' /+m: `.-:::-` /d+ +MMMMMMMNh:`' +echo ' +MN/ -yh. `+hddhy+.' +echo ' /MM+ .sh:' +echo ' :NMo -sh/' +echo ' -NMs `/yy:' +echo ' .NMy `:sh+.' +echo ' `mMm` ./yds-' +echo ' `dMMMmyo:-.````.-:oymNy:`' +echo ' +NMMMMMMMMMMMMMMMMms:`' +echo ' -+shmNMMMNmdy+:`' +echo '' +echo '' +echo ' Now attempting installation...' +echo '' +echo '' + +# Sanity checks + +echo "Looking for a previous installation of SDKMAN..." +if [ -d "$SDKMAN_DIR" ]; then + echo "SDKMAN found." + echo "" + echo "======================================================================================================" + echo " You already have SDKMAN installed." + echo " SDKMAN was found at:" + echo "" + echo " ${SDKMAN_DIR}" + echo "" + echo " Please consider running the following if you need to upgrade." + echo "" + echo " $ sdk selfupdate force" + echo "" + echo "======================================================================================================" + echo "" + exit 0 +fi + +echo "Looking for unzip..." +if ! command -v unzip > /dev/null; then + echo "Not found." + echo "======================================================================================================" + echo " Please install unzip on your system using your favourite package manager." + echo "" + echo " Restart after installing unzip." + echo "======================================================================================================" + echo "" + exit 1 +fi + +echo "Looking for zip..." +if ! command -v zip > /dev/null; then + echo "Not found." + echo "======================================================================================================" + echo " Please install zip on your system using your favourite package manager." + echo "" + echo " Restart after installing zip." + echo "======================================================================================================" + echo "" + exit 1 +fi + +echo "Looking for curl..." +if ! command -v curl > /dev/null; then + echo "Not found." + echo "" + echo "======================================================================================================" + echo " Please install curl on your system using your favourite package manager." + echo "" + echo " Restart after installing curl." + echo "======================================================================================================" + echo "" + exit 1 +fi + +if [[ "$solaris" == true ]]; then + echo "Looking for gsed..." + if [ -z $(which gsed) ]; then + echo "Not found." + echo "" + echo "======================================================================================================" + echo " Please install gsed on your solaris system." + echo "" + echo " SDKMAN uses gsed extensively." + echo "" + echo " Restart after installing gsed." + echo "======================================================================================================" + echo "" + exit 1 + fi +else + echo "Looking for sed..." + if [ -z $(command -v sed) ]; then + echo "Not found." + echo "" + echo "======================================================================================================" + echo " Please install sed on your system using your favourite package manager." + echo "" + echo " Restart after installing sed." + echo "======================================================================================================" + echo "" + exit 1 + fi +fi + +echo "Installing SDKMAN scripts..." + + +# Create directory structure + +echo "Create distribution directories..." +mkdir -p "$sdkman_tmp_folder" +mkdir -p "$sdkman_ext_folder" +mkdir -p "$sdkman_etc_folder" +mkdir -p "$sdkman_var_folder" +mkdir -p "$sdkman_archives_folder" +mkdir -p "$sdkman_candidates_folder" + +echo "Getting available candidates..." +SDKMAN_CANDIDATES_CSV=$(curl -s "${SDKMAN_SERVICE}/candidates/all") +echo "$SDKMAN_CANDIDATES_CSV" > "${SDKMAN_DIR}/var/candidates" + +echo "Prime the config file..." +touch "$sdkman_config_file" +echo "sdkman_auto_answer=false" >> "$sdkman_config_file" +if [ -z "$ZSH_VERSION" -a -z "$BASH_VERSION" ]; then + echo "sdkman_auto_complete=false" >> "$sdkman_config_file" +else + echo "sdkman_auto_complete=true" >> "$sdkman_config_file" +fi +echo "sdkman_auto_env=false" >> "$sdkman_config_file" +echo "sdkman_auto_update=true" >> "$sdkman_config_file" +echo "sdkman_beta_channel=false" >> "$sdkman_config_file" +echo "sdkman_checksum_enable=true" >> "$sdkman_config_file" +echo "sdkman_colour_enable=true" >> "$sdkman_config_file" +echo "sdkman_curl_connect_timeout=7" >> "$sdkman_config_file" +echo "sdkman_curl_max_time=10" >> "$sdkman_config_file" +echo "sdkman_debug_mode=false" >> "$sdkman_config_file" +echo "sdkman_insecure_ssl=false" >> "$sdkman_config_file" +echo "sdkman_rosetta2_compatible=false" >> "$sdkman_config_file" +echo "sdkman_selfupdate_feature=true" >> "$sdkman_config_file" + +echo "Download script archive..." +curl --location --progress-bar "${SDKMAN_SERVICE}/broker/download/sdkman/install/${SDKMAN_VERSION}/${SDKMAN_PLATFORM}" > "$sdkman_zip_file" + +ARCHIVE_OK=$(unzip -qt "$sdkman_zip_file" | grep 'No errors detected in compressed data') +if [[ -z "$ARCHIVE_OK" ]]; then + echo "Downloaded zip archive corrupt. Are you connected to the internet?" + echo "" + echo "If problems persist, please ask for help on our Slack:" + echo "* easy sign up: https://slack.sdkman.io/" + echo "* report on channel: https://sdkman.slack.com/app_redirect?channel=user-issues" + rm -rf "$SDKMAN_DIR" + exit 1 +fi + +echo "Extract script archive..." +if [[ "$cygwin" == 'true' ]]; then + echo "Cygwin detected - normalizing paths for unzip..." + sdkman_tmp_folder=$(cygpath -w "$sdkman_tmp_folder") + sdkman_zip_file=$(cygpath -w "$sdkman_zip_file") + sdkman_zip_base_folder=$(cygpath -w "$sdkman_zip_base_folder") +fi +unzip -qo "$sdkman_zip_file" -d "$sdkman_tmp_folder" + +echo "Install scripts..." +mv "${sdkman_zip_base_folder}/"* "$SDKMAN_DIR" +rm -rf "$sdkman_zip_base_folder" + +echo "Set version to $SDKMAN_VERSION ..." +echo "$SDKMAN_VERSION" > "${SDKMAN_DIR}/var/version" + + +if [[ $darwin == true ]]; then + touch "$sdkman_bash_profile" + echo "Attempt update of login bash profile on OSX..." + if [[ -z $(grep 'sdkman-init.sh' "$sdkman_bash_profile") ]]; then + echo -e "\n$sdkman_init_snippet" >> "$sdkman_bash_profile" + echo "Added sdkman init snippet to $sdkman_bash_profile" + fi +else + echo "Attempt update of interactive bash profile on regular UNIX..." + touch "${sdkman_bashrc}" + if [[ -z $(grep 'sdkman-init.sh' "$sdkman_bashrc") ]]; then + echo -e "\n$sdkman_init_snippet" >> "$sdkman_bashrc" + echo "Added sdkman init snippet to $sdkman_bashrc" + fi +fi + +echo "Attempt update of zsh profile..." +touch "$sdkman_zshrc" +if [[ -z $(grep 'sdkman-init.sh' "$sdkman_zshrc") ]]; then + echo -e "\n$sdkman_init_snippet" >> "$sdkman_zshrc" + echo "Updated existing ${sdkman_zshrc}" +fi + + + +echo -e "\n\n\nAll done!\n\n" + +echo "You are subscribed to the STABLE channel." + +echo "" +echo "Please open a new terminal, or run the following in the existing one:" +echo "" +echo " source \"${SDKMAN_DIR}/bin/sdkman-init.sh\"" +echo "" +echo "Then issue the following command:" +echo "" +echo " sdk help" +echo "" +echo "Enjoy!!!" diff --git a/linux/ecosystem/teamcity/agent/dotnet-sdk/Dockerfile b/linux/ecosystem/teamcity/agent/dotnet-sdk/Dockerfile index 88eef597d..234e88cbd 100644 --- a/linux/ecosystem/teamcity/agent/dotnet-sdk/Dockerfile +++ b/linux/ecosystem/teamcity/agent/dotnet-sdk/Dockerfile @@ -2,8 +2,6 @@ FROM epicmorg/teamcity-agent:latest LABEL maintainer="EpicMorg DevTeam, developer@epicm.org" ARG DEBIAN_FRONTEND=noninteractive -COPY sources.list.d/sources.11.list /etc/apt/sources.list.d/sources.11.list - ################################################################## # teamcity dotnet+powershell setup ################################################################## @@ -25,7 +23,7 @@ ENV CLR_OPENSSL_VERSION_OVERRIDE=45 ENV POWERSHELL_DISTRIBUTION_CHANNEL=PSDocker-DotnetSDK-Debian-10 #Install packages RUN curl https://packages.microsoft.com/keys/microsoft.asc | sudo apt-key add - && \ - echo 'deb [arch=amd64,arm64,armhf] https://packages.microsoft.com/debian/11/prod bullseye main' > /etc/apt/sources.list.d/microsoft.dotnet.list && \ + echo 'deb [arch=amd64,arm64,armhf] https://packages.microsoft.com/debian/12/prod boowkworm main' > /etc/apt/sources.list.d/microsoft.dotnet.list && \ apt-get update && \ apt-get install -y --no-install-recommends --allow-unauthenticated \ libc6 \ diff --git a/linux/ecosystem/teamcity/agent/dotnet-sdk/sources.list.d/sources.11.list b/linux/ecosystem/teamcity/agent/dotnet-sdk/sources.list.d/sources.11.list deleted file mode 100644 index 5a8c0081a..000000000 --- a/linux/ecosystem/teamcity/agent/dotnet-sdk/sources.list.d/sources.11.list +++ /dev/null @@ -1,21 +0,0 @@ -#main -deb http://httpredir.debian.org/debian/ bullseye main contrib non-free -deb-src http://httpredir.debian.org/debian/ bullseye main contrib non-free -deb http://httpredir.debian.org/debian/ bullseye-updates main contrib non-free -deb-src http://httpredir.debian.org/debian/ bullseye-updates main contrib non-free -deb http://httpredir.debian.org/debian/ bullseye-backports main contrib non-free -deb-src http://httpredir.debian.org/debian/ bullseye-backports main contrib non-free -deb http://httpredir.debian.org/debian/ bullseye-proposed-updates main contrib non-free -deb-src http://httpredir.debian.org/debian/ bullseye-proposed-updates main contrib non-free - -#security -deb http://httpredir.debian.org/debian-security/ bullseye-security main contrib non-free -deb-src http://httpredir.debian.org/debian-security/ bullseye-security main contrib non-free -deb http://httpredir.debian.org/debian-security/ bullseye-security/updates main contrib non-free -deb-src http://httpredir.debian.org/debian-security/ bullseye-security/updates main contrib non-free - -##multimedia -# deb http://httpredir.debian.org/debian-multimedia/ bullseye main non-free -# deb-src http://httpredir.debian.org/debian-multimedia/ bullseye main non-free -# deb http://httpredir.debian.org/debian-multimedia/ bullseye-backports main -# deb-src http://httpredir.debian.org/debian-multimedia/ bullseye-backports main diff --git a/linux/ecosystem/teamcity/agent/latest/jdk11/Dockerfile b/linux/ecosystem/teamcity/agent/latest/jdk11/Dockerfile index 99cc09ce7..8553a1f49 100644 --- a/linux/ecosystem/teamcity/agent/latest/jdk11/Dockerfile +++ b/linux/ecosystem/teamcity/agent/latest/jdk11/Dockerfile @@ -1,4 +1,4 @@ -FROM epicmorg/debian:bullseye-develop-jdk11 +FROM epicmorg/debian:bookworm-develop-jdk11 LABEL maintainer="EpicMorg DevTeam, developer@epicm.org" ARG DEBIAN_FRONTEND=noninteractive diff --git a/linux/ecosystem/teamcity/agent/latest/jdk17/Dockerfile b/linux/ecosystem/teamcity/agent/latest/jdk17/Dockerfile index cc59e14bf..2374bc0f0 100644 --- a/linux/ecosystem/teamcity/agent/latest/jdk17/Dockerfile +++ b/linux/ecosystem/teamcity/agent/latest/jdk17/Dockerfile @@ -1,4 +1,4 @@ -FROM epicmorg/debian:bullseye-develop-jdk17 +FROM epicmorg/debian:bookworm-develop-jdk17 LABEL maintainer="EpicMorg DevTeam, developer@epicm.org" ARG DEBIAN_FRONTEND=noninteractive diff --git a/linux/ecosystem/teamcity/agent/latest/jdk21/Dockerfile b/linux/ecosystem/teamcity/agent/latest/jdk21/Dockerfile new file mode 100644 index 000000000..2374bc0f0 --- /dev/null +++ b/linux/ecosystem/teamcity/agent/latest/jdk21/Dockerfile @@ -0,0 +1,145 @@ +FROM epicmorg/debian:bookworm-develop-jdk17 +LABEL maintainer="EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# sid sources list +################################################################## +#RUN rm -rfv /etc/apt/sources.list +#COPY sources.sid.list /etc/apt/sources.list +RUN apt update && \ + apt autoremove -y && \ + apt dist-upgrade -y && \ + apt autoremove -y + +################################################################## +# teamcity minimal agent +################################################################## +LABEL dockerImage.teamcity.version="latest" \ + dockerImage.teamcity.buildNumber="latest" + +VOLUME /data/teamcity_agent/conf + +ENV CONFIG_FILE=/data/teamcity_agent/conf/buildAgent.properties +ENV LANG=C.UTF-8 +ENV GIT_SSH_VARIANT=ssh + +COPY run-agent.sh /run-agent.sh +RUN chmod +x /run-agent.sh && \ + sync + +COPY run-services.sh /run-services.sh +RUN chmod +x /run-services.sh && \ + sync + +ADD https://teamcity.jetbrains.com/update/buildAgent.zip /buildAgent.zip +RUN unzip -q /buildAgent.zip -d /opt/buildagent && \ + mv /opt/buildagent/conf /opt/buildagent/conf_dist && \ + rm -rfv /buildAgent.zip + +RUN useradd -m buildagent && \ + chmod +x /opt/buildagent/bin/*.sh && \ + chmod +x /run-agent.sh /run-services.sh && sync + +################################################################## +# teamcity docker setup +################################################################## + +#Install packages +RUN curl -fsSL https://download.docker.com/linux/debian/gpg | apt-key add - && \ + echo 'deb https://download.docker.com/linux/debian bullseye test' > /etc/apt/sources.list.d/docker.list && \ + echo 'deb https://download.docker.com/linux/debian bullseye nightly' >> /etc/apt/sources.list.d/docker.list && \ + apt-cache policy docker-ce && \ + apt-get update && \ + apt-get install -y --no-install-recommends --allow-unauthenticated \ + docker-ce \ + docker-ce-cli \ + containerd.io systemd && \ + systemctl disable docker && \ + usermod -aG docker buildagent + +# A better fix for TW-52939 Dockerfile build fails because of aufs +VOLUME /var/lib/docker + +COPY run-docker.sh /services/run-docker.sh +RUN chmod +x /services/run-docker.sh && \ + sync + +################################################################## +# teamcity docker compose setup +################################################################## + +#Install packages +RUN export DOCKER_COMPOSE_VERSION=`curl --silent https://api.github.com/repos/docker/compose/releases/latest | jq .name -r` && \ + echo "Latest compose is: ${DOCKER_COMPOSE_VERSION}" && \ + curl -SL https://github.com/docker/compose/releases/download/${DOCKER_COMPOSE_VERSION}/docker-compose-Linux-x86_64 -o /usr/local/bin/docker-compose && \ + chmod +x /usr/local/bin/docker-compose + + +################################################################## +# Additional settings +################################################################## +ENV MAVEN_VERSION=3.9.6 +ENV MAVEN_LINK=https://dlcdn.apache.org/maven/maven-3/${MAVEN_VERSION}/binaries/apache-maven-${MAVEN_VERSION}-bin.zip +ENV MAVEN_ROOT=/opt/maven +ENV MAVEN_PATH=${MAVEN_ROOT}/apache-maven-${MAVEN_VERSION} +ENV MAVEN_BIN=${MAVEN_PATH}/bin +ARG MAVEN_TEMP=/tmp/MAVEN.zip + +ENV GRADLE_VERSION=8.6 +ENV GRADLE_LINK=https://services.gradle.org/distributions/gradle-${GRADLE_VERSION}-all.zip +ENV GRADLE_ROOT=/opt/gradle +ENV GRADLE_PATH=${GRADLE_ROOT}/gradle-${GRADLE_VERSION} +ENV GRADLE_BIN=${GRADLE_PATH}/bin +ARG GRADLE_TEMP=/tmp/gradle.zip + +ENV KTC_VERSION=1.9.22 +ENV KTC_LINK=https://github.com/JetBrains/kotlin/releases/download/v${KTC_VERSION}/kotlin-compiler-${KTC_VERSION}.zip +ARG KTC_TEMP=/tmp/kotlinc.zip +ENV KTC_ROOT=/opt/kotlin +ENV KTC_PATH=${KTC_ROOT}/kotlinc +ENV KTC_BIN=${KTC_PATH}/bin + +RUN mkdir -p ${MAVEN_PATH} ${KTC_PATH} ${GRADLE_PATH} +ENV PATH=${PATH}:${MAVEN_BIN}:${GRADLE_BIN}:${KTC_BIN} + +################################################################## +# Maven +################################################################## +ENV MAVEN_HOME=${MAVEN_ROOT} +ENV M2_HOME=${MAVEN_ROOT} + +RUN curl --insecure --progress-bar -L -o ${MAVEN_TEMP} --retry 10 --retry-delay 0 ${MAVEN_LINK} +RUN 7zz x ${MAVEN_TEMP} -o${MAVEN_ROOT} +RUN chmod +x -R ${MAVEN_BIN} +RUN mvn -v + +################################################################## +# GRADLE +################################################################## +RUN curl --insecure --progress-bar -L -o ${GRADLE_TEMP} --retry 10 --retry-delay 0 ${GRADLE_LINK} +RUN 7zz x ${GRADLE_TEMP} -o${GRADLE_ROOT} +RUN chmod +x -R ${GRADLE_BIN} +RUN gradle -v + +################################################################## +# KOTLIN +################################################################## +RUN curl --insecure --progress-bar -L -o ${KTC_TEMP} --retry 10 --retry-delay 0 ${KTC_LINK} +RUN 7zz x $KTC_TEMP -o${KTC_ROOT} +RUN chmod +x -R ${KTC_BIN} +RUN kotlin -version + +################################################################## +# cleaninig up +################################################################## +RUN apt clean -y && \ + apt-get clean all && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb && \ + rm -rfv /tmp/* + +CMD ["/run-services.sh"] + +EXPOSE 9090 diff --git a/linux/ecosystem/teamcity/agent/latest/jdk21/Makefile b/linux/ecosystem/teamcity/agent/latest/jdk21/Makefile new file mode 100644 index 000000000..9ef622aa9 --- /dev/null +++ b/linux/ecosystem/teamcity/agent/latest/jdk21/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel --progress plain + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/teamcity/agent/latest/jdk21/README.md b/linux/ecosystem/teamcity/agent/latest/jdk21/README.md new file mode 100644 index 000000000..b53fe01e8 --- /dev/null +++ b/linux/ecosystem/teamcity/agent/latest/jdk21/README.md @@ -0,0 +1,93 @@ +## TeamCity Minimal Build Agent + +[](https://confluence.jetbrains.com/display/ALL/JetBrains+on+GitHub) + +This is an official [JetBrains TeamCity](https://www.jetbrains.com/teamcity/) minimal build agent image. + + More details about tags and components are [here](https://github.com/JetBrains/teamcity-docker-images/blob/master/generated/teamcity-minimal-agent.md). + +The [TeamCity build agent](https://www.jetbrains.com/help/teamcity/build-agent.html) connects to the TeamCity server and spawns the actual build processes. +You can use the ```jetbrains/teamcity-server``` image to run a TeamCity server. + +This minimal image adds just a TeamCity agent without any tools like VCS clients, etc. It is suitable for simple builds and can serve as a base for your custom images. For Java or .NET development we recommend using the default build agent image [jetbrains/teamcity-agent](https://hub.docker.com/r/jetbrains/teamcity-agent/). + +## How to Use This Image + +Pull the TeamCity minimal image from the Docker Hub Repository: + +``` +jetbrains/teamcity-minimal-agent +``` +  +and use the following command to start a container with TeamCity agent running inside +a Linux container: + +``` +docker run -it -e SERVER_URL="" \ + -v :/data/teamcity_agent/conf \ + jetbrains/teamcity-minimal-agent +``` +  +or a Windows container: +``` +docker run -it -e SERVER_URL="" + -v :C:/BuildAgent/conf + jetbrains/teamcity-minimal-agent +``` +where `` is the full URL for TeamCity server, accessible by the agent. Note that `localhost` will not generally not work as it will refer to the `localhost` inside the container. +`` is the host machine directory to serve as the TeamCity agent config directory. We recommend providing this binding in order to persist the agent configuration, e.g. authorization on the server. Note that you should map a different folder for every new agent you create. + +Since version 2020.1, TeamCity agent Docker images __run under a non-root user__. Refer to our [upgrade notes](https://www.jetbrains.com/help/teamcity/upgrade-notes.html#UpgradeNotes-AgentDockerimagesrunundernon-rootuser) for information on possible affected use cases. + +When you run the agent for the first time, you should authorize it via the TeamCity server UI: go to the **Unauthorized Agents** page in your browser. See [more details](https://www.jetbrains.com/help/teamcity/build-agent.html). + +All information about agent authorization is stored in agent's configuration folder. If you stop the container with the agent and then start a new one with the same config folder, the agent's name and authorization state will be preserved. + +TeamCity agent does not need manual upgrade: it will upgrade itself automatically on connecting to an upgraded server. + +### Agent Image Environment Variables + +- **SERVER_URL** - URL of the TeamCity server agent will connect to +- **AGENT_NAME** - (optional) Name of the agent in TeamCity UI, autogenerated if omitted +- **AGENT_TOKEN** - (optional) Agent authorization token, if unset, the agent should be [authorized](https://www.jetbrains.com/help/teamcity/build-agent.html#BuildAgent-BuildAgentStatus) via TeamCity UI. +- **OWN_ADDRESS** - (optional, linux only) IP address build agent binds to, autodetected +- **OWN_PORT** - (optional, linux only) Port build agent binds to, 9090 by default + +### Windows Containers Limitations + +The details on the known problems in Windows containers are available in the [TeamCity documentation](https://www.jetbrains.com/help/teamcity/known-issues.html#KnownIssues-WindowsDockerContainers). + +## Customization + +You can customize the image via the usual Docker procedure: + +1. Run the image +``` +docker run -it -e SERVER_URL="" \ + -v :/data/teamcity_agent/conf \ + --name="my-customized-agent" \ + jetbrains/teamcity-minimal-agent \ +``` +2. Enter the container +``` +docker exec -it my-customized-agent bash +``` + +3. Change whatever you need +4. Exit and [create a new image](https://docs.docker.com/engine/reference/commandline/commit/) from the container +``` +docker commit my-customized-agent +``` + +## License + +The image is available under the [TeamCity license](https://www.jetbrains.com/teamcity/buy/license.html). +TeamCity is free for perpetual use with the limitation of 100 build configurations (jobs) and 3 agents. [Licensing details](https://www.jetbrains.com/help/teamcity/licensing-policy.html). + +## Feedback + +Report issues of suggestions to the official TeamCity [issue tracker](https://youtrack.jetbrains.com/issues/TW). + +## Other TeamCity Images +* [TeamCity Server](https://hub.docker.com/r/jetbrains/teamcity-server/) +* [Build Agent](https://hub.docker.com/r/jetbrains/teamcity-agent/) diff --git a/linux/ecosystem/teamcity/agent/latest/jdk21/docker-compose.yml b/linux/ecosystem/teamcity/agent/latest/jdk21/docker-compose.yml new file mode 100644 index 000000000..2ffc4a97c --- /dev/null +++ b/linux/ecosystem/teamcity/agent/latest/jdk21/docker-compose.yml @@ -0,0 +1,6 @@ +version: '3' +services: + app: + image: "epicmorg/teamcity-agent:latest-jdk21" + build: + context: . diff --git a/linux/ecosystem/teamcity/agent/latest/jdk21/run-agent.sh b/linux/ecosystem/teamcity/agent/latest/jdk21/run-agent.sh new file mode 100755 index 000000000..a9ded1d14 --- /dev/null +++ b/linux/ecosystem/teamcity/agent/latest/jdk21/run-agent.sh @@ -0,0 +1,90 @@ +#!/bin/bash + +check() { + if [[ $? != 0 ]]; then + echo "Error! Stopping the script." + exit 1 + fi +} + +configure() { + if [[ $# -gt 0 ]]; then + echo "run agent.sh configure $@" + ${AGENT_DIST}/bin/agent.sh configure "$@"; check + fi +} + +reconfigure() { + declare -a opts + [[ -n "${SERVER_URL}" ]] && opts[${#opts[@]}]='--server-url' && opts[${#opts[@]}]="$SERVER_URL" + [[ -n "${AGENT_TOKEN}" ]] && opts[${#opts[@]}]='--auth-token' && opts[${#opts[@]}]="$AGENT_TOKEN" + [[ -n "${AGENT_NAME}" ]] && opts[${#opts[@]}]='--name' && opts[${#opts[@]}]="$AGENT_NAME" + [[ -n "${OWN_ADDRESS}" ]] && opts[${#opts[@]}]='--ownAddress' && opts[${#opts[@]}]="$OWN_ADDRESS" + [[ -n "${OWN_PORT}" ]] && opts[${#opts[@]}]='--ownPort' && opts[${#opts[@]}]="$OWN_PORT" + if [[ 0 -ne "${#opts[@]}" ]]; then + # Using sed to strip double quotes produced by docker-compose + for i in $(seq 0 $(expr ${#opts[@]} - 1)); do + opts[$i]="$(echo "${opts[$i]}" | sed -e 's/""/"/g')" + done + configure "${opts[@]}" + echo "File buildAgent.properties was updated" + fi + for AGENT_OPT in ${AGENT_OPTS}; do + echo ${AGENT_OPT} >> ${CONFIG_DIR}/buildAgent.properties + done +} + +prepare_conf() { + echo "Will prepare agent config" ; + cp -p ${AGENT_DIST}/conf_dist/*.* ${CONFIG_DIR}/; check + cp -p ${CONFIG_DIR}/buildAgent.dist.properties ${CONFIG_DIR}/buildAgent.properties; check + reconfigure + echo "File buildAgent.properties was created and updated" ; +} + +AGENT_DIST=/opt/buildagent + +CONFIG_DIR=/data/teamcity_agent/conf + +LOG_DIR=/opt/buildagent/logs + + +rm -f ${LOG_DIR}/*.pid + +if [ -f ${CONFIG_DIR}/buildAgent.properties ] ; then + echo "File buildAgent.properties was found in ${CONFIG_DIR}" ; + reconfigure +else + echo "Will create new buildAgent.properties using distributive" ; + if [[ -n "${SERVER_URL}" ]]; then + echo "TeamCity URL is provided: ${SERVER_URL}" + else + echo "TeamCity URL is not provided, but is required." + exit 1 + fi + prepare_conf +fi + +if [ -z "$RUN_AS_BUILDAGENT" -o "$RUN_AS_BUILDAGENT" = "false" -o "$RUN_AS_BUILDAGENT" = "no" ]; then + ${AGENT_DIST}/bin/agent.sh start +else + echo "Make sure build agent directory ${AGENT_DIST} is owned by buildagent user" + chown -R buildagent:buildagent ${AGENT_DIST} + check; sync + + echo "Start build agent under buildagent user" + sudo -E -u buildagent HOME=/home/buildagent ${AGENT_DIST}/bin/agent.sh start +fi + + + +while [ ! -f ${LOG_DIR}/teamcity-agent.log ]; +do + echo -n "." + sleep 1 +done + +trap '${AGENT_DIST}/bin/agent.sh stop force; while ps -p $(cat $(ls -1 ${LOG_DIR}/*.pid)) &>/dev/null; do sleep 1; done; kill %%' SIGINT SIGTERM SIGHUP + +tail -qF ${LOG_DIR}/teamcity-agent.log & +wait diff --git a/linux/ecosystem/teamcity/agent/latest/jdk21/run-docker.sh b/linux/ecosystem/teamcity/agent/latest/jdk21/run-docker.sh new file mode 100755 index 000000000..41b5e68e5 --- /dev/null +++ b/linux/ecosystem/teamcity/agent/latest/jdk21/run-docker.sh @@ -0,0 +1,7 @@ +#!/bin/bash + +if [ "$DOCKER_IN_DOCKER" = "start" ] ; then + rm /var/run/docker.pid 2>/dev/null + service docker start + echo "Docker daemon started" +fi diff --git a/linux/ecosystem/teamcity/agent/latest/jdk21/run-services.sh b/linux/ecosystem/teamcity/agent/latest/jdk21/run-services.sh new file mode 100755 index 000000000..a574dd68a --- /dev/null +++ b/linux/ecosystem/teamcity/agent/latest/jdk21/run-services.sh @@ -0,0 +1,15 @@ +#!/bin/bash + +echo '/run-services.sh' + +for entry in /services/*.sh +do + if [[ -f "$entry" ]]; then + echo "$entry" + [[ ! -x "$entry" ]] && (chmod +x "$entry"; sync) + "$entry" + fi +done + +echo '/run-agent.sh' +exec '/run-agent.sh' diff --git a/linux/ecosystem/teamcity/agent/latest/jdk21/sources.sid.list b/linux/ecosystem/teamcity/agent/latest/jdk21/sources.sid.list new file mode 100644 index 000000000..e2ce3bf7a --- /dev/null +++ b/linux/ecosystem/teamcity/agent/latest/jdk21/sources.sid.list @@ -0,0 +1,7 @@ +#main +deb http://httpredir.debian.org/debian/ sid main contrib non-free +deb-src http://httpredir.debian.org/debian/ sid main contrib non-free + +##multimedia +#deb http://httpredir.debian.org/debian-multimedia/ sid main non-free +#deb-src http://httpredir.debian.org/debian-multimedia/ sid main non-free diff --git a/linux/ecosystem/teamcity/agent/latest/jdk8/Dockerfile b/linux/ecosystem/teamcity/agent/latest/jdk8/Dockerfile new file mode 100644 index 000000000..fa6df1f8b --- /dev/null +++ b/linux/ecosystem/teamcity/agent/latest/jdk8/Dockerfile @@ -0,0 +1,145 @@ +FROM epicmorg/debian:bookworm-develop-jdk8 +LABEL maintainer="EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# sid sources list +################################################################## +#RUN rm -rfv /etc/apt/sources.list +#COPY sources.sid.list /etc/apt/sources.list +RUN apt update && \ + apt autoremove -y && \ + apt dist-upgrade -y && \ + apt autoremove -y + +################################################################## +# teamcity minimal agent +################################################################## +LABEL dockerImage.teamcity.version="latest" \ + dockerImage.teamcity.buildNumber="latest" + +VOLUME /data/teamcity_agent/conf + +ENV CONFIG_FILE=/data/teamcity_agent/conf/buildAgent.properties +ENV LANG=C.UTF-8 +ENV GIT_SSH_VARIANT=ssh + +COPY run-agent.sh /run-agent.sh +RUN chmod +x /run-agent.sh && \ + sync + +COPY run-services.sh /run-services.sh +RUN chmod +x /run-services.sh && \ + sync + +ADD https://teamcity.jetbrains.com/update/buildAgent.zip /buildAgent.zip +RUN unzip -q /buildAgent.zip -d /opt/buildagent && \ + mv /opt/buildagent/conf /opt/buildagent/conf_dist && \ + rm -rfv /buildAgent.zip + +RUN useradd -m buildagent && \ + chmod +x /opt/buildagent/bin/*.sh && \ + chmod +x /run-agent.sh /run-services.sh && sync + +################################################################## +# teamcity docker setup +################################################################## + +#Install packages +RUN curl -fsSL https://download.docker.com/linux/debian/gpg | apt-key add - && \ + echo 'deb https://download.docker.com/linux/debian bullseye test' > /etc/apt/sources.list.d/docker.list && \ + echo 'deb https://download.docker.com/linux/debian bullseye nightly' >> /etc/apt/sources.list.d/docker.list && \ + apt-cache policy docker-ce && \ + apt-get update && \ + apt-get install -y --no-install-recommends --allow-unauthenticated \ + docker-ce \ + docker-ce-cli \ + containerd.io systemd && \ + systemctl disable docker && \ + usermod -aG docker buildagent + +# A better fix for TW-52939 Dockerfile build fails because of aufs +VOLUME /var/lib/docker + +COPY run-docker.sh /services/run-docker.sh +RUN chmod +x /services/run-docker.sh && \ + sync + +################################################################## +# teamcity docker compose setup +################################################################## + +#Install packages +RUN export DOCKER_COMPOSE_VERSION=`curl --silent https://api.github.com/repos/docker/compose/releases/latest | jq .name -r` && \ + echo "Latest compose is: ${DOCKER_COMPOSE_VERSION}" && \ + curl -SL https://github.com/docker/compose/releases/download/${DOCKER_COMPOSE_VERSION}/docker-compose-Linux-x86_64 -o /usr/local/bin/docker-compose && \ + chmod +x /usr/local/bin/docker-compose + + +################################################################## +# Additional settings +################################################################## +ENV MAVEN_VERSION=3.9.6 +ENV MAVEN_LINK=https://dlcdn.apache.org/maven/maven-3/${MAVEN_VERSION}/binaries/apache-maven-${MAVEN_VERSION}-bin.zip +ENV MAVEN_ROOT=/opt/maven +ENV MAVEN_PATH=${MAVEN_ROOT}/apache-maven-${MAVEN_VERSION} +ENV MAVEN_BIN=${MAVEN_PATH}/bin +ARG MAVEN_TEMP=/tmp/MAVEN.zip + +ENV GRADLE_VERSION=8.6 +ENV GRADLE_LINK=https://services.gradle.org/distributions/gradle-${GRADLE_VERSION}-all.zip +ENV GRADLE_ROOT=/opt/gradle +ENV GRADLE_PATH=${GRADLE_ROOT}/gradle-${GRADLE_VERSION} +ENV GRADLE_BIN=${GRADLE_PATH}/bin +ARG GRADLE_TEMP=/tmp/gradle.zip + +ENV KTC_VERSION=1.9.22 +ENV KTC_LINK=https://github.com/JetBrains/kotlin/releases/download/v${KTC_VERSION}/kotlin-compiler-${KTC_VERSION}.zip +ARG KTC_TEMP=/tmp/kotlinc.zip +ENV KTC_ROOT=/opt/kotlin +ENV KTC_PATH=${KTC_ROOT}/kotlinc +ENV KTC_BIN=${KTC_PATH}/bin + +RUN mkdir -p ${MAVEN_PATH} ${KTC_PATH} ${GRADLE_PATH} +ENV PATH=${PATH}:${MAVEN_BIN}:${GRADLE_BIN}:${KTC_BIN} + +################################################################## +# Maven +################################################################## +ENV MAVEN_HOME=${MAVEN_ROOT} +ENV M2_HOME=${MAVEN_ROOT} + +RUN curl --insecure --progress-bar -L -o ${MAVEN_TEMP} --retry 10 --retry-delay 0 ${MAVEN_LINK} +RUN 7zz x ${MAVEN_TEMP} -o${MAVEN_ROOT} +RUN chmod +x -R ${MAVEN_BIN} +RUN mvn -v + +################################################################## +# GRADLE +################################################################## +RUN curl --insecure --progress-bar -L -o ${GRADLE_TEMP} --retry 10 --retry-delay 0 ${GRADLE_LINK} +RUN 7zz x ${GRADLE_TEMP} -o${GRADLE_ROOT} +RUN chmod +x -R ${GRADLE_BIN} +RUN gradle -v + +################################################################## +# KOTLIN +################################################################## +RUN curl --insecure --progress-bar -L -o ${KTC_TEMP} --retry 10 --retry-delay 0 ${KTC_LINK} +RUN 7zz x $KTC_TEMP -o${KTC_ROOT} +RUN chmod +x -R ${KTC_BIN} +RUN kotlin -version + +################################################################## +# cleaninig up +################################################################## +RUN apt clean -y && \ + apt-get clean all && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb && \ + rm -rfv /tmp/* + +CMD ["/run-services.sh"] + +EXPOSE 9090 diff --git a/linux/ecosystem/teamcity/agent/latest/jdk8/Makefile b/linux/ecosystem/teamcity/agent/latest/jdk8/Makefile new file mode 100644 index 000000000..9ef622aa9 --- /dev/null +++ b/linux/ecosystem/teamcity/agent/latest/jdk8/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel --progress plain + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/teamcity/agent/latest/jdk8/README.md b/linux/ecosystem/teamcity/agent/latest/jdk8/README.md new file mode 100644 index 000000000..b53fe01e8 --- /dev/null +++ b/linux/ecosystem/teamcity/agent/latest/jdk8/README.md @@ -0,0 +1,93 @@ +## TeamCity Minimal Build Agent + +[](https://confluence.jetbrains.com/display/ALL/JetBrains+on+GitHub) + +This is an official [JetBrains TeamCity](https://www.jetbrains.com/teamcity/) minimal build agent image. + + More details about tags and components are [here](https://github.com/JetBrains/teamcity-docker-images/blob/master/generated/teamcity-minimal-agent.md). + +The [TeamCity build agent](https://www.jetbrains.com/help/teamcity/build-agent.html) connects to the TeamCity server and spawns the actual build processes. +You can use the ```jetbrains/teamcity-server``` image to run a TeamCity server. + +This minimal image adds just a TeamCity agent without any tools like VCS clients, etc. It is suitable for simple builds and can serve as a base for your custom images. For Java or .NET development we recommend using the default build agent image [jetbrains/teamcity-agent](https://hub.docker.com/r/jetbrains/teamcity-agent/). + +## How to Use This Image + +Pull the TeamCity minimal image from the Docker Hub Repository: + +``` +jetbrains/teamcity-minimal-agent +``` +  +and use the following command to start a container with TeamCity agent running inside +a Linux container: + +``` +docker run -it -e SERVER_URL="" \ + -v :/data/teamcity_agent/conf \ + jetbrains/teamcity-minimal-agent +``` +  +or a Windows container: +``` +docker run -it -e SERVER_URL="" + -v :C:/BuildAgent/conf + jetbrains/teamcity-minimal-agent +``` +where `` is the full URL for TeamCity server, accessible by the agent. Note that `localhost` will not generally not work as it will refer to the `localhost` inside the container. +`` is the host machine directory to serve as the TeamCity agent config directory. We recommend providing this binding in order to persist the agent configuration, e.g. authorization on the server. Note that you should map a different folder for every new agent you create. + +Since version 2020.1, TeamCity agent Docker images __run under a non-root user__. Refer to our [upgrade notes](https://www.jetbrains.com/help/teamcity/upgrade-notes.html#UpgradeNotes-AgentDockerimagesrunundernon-rootuser) for information on possible affected use cases. + +When you run the agent for the first time, you should authorize it via the TeamCity server UI: go to the **Unauthorized Agents** page in your browser. See [more details](https://www.jetbrains.com/help/teamcity/build-agent.html). + +All information about agent authorization is stored in agent's configuration folder. If you stop the container with the agent and then start a new one with the same config folder, the agent's name and authorization state will be preserved. + +TeamCity agent does not need manual upgrade: it will upgrade itself automatically on connecting to an upgraded server. + +### Agent Image Environment Variables + +- **SERVER_URL** - URL of the TeamCity server agent will connect to +- **AGENT_NAME** - (optional) Name of the agent in TeamCity UI, autogenerated if omitted +- **AGENT_TOKEN** - (optional) Agent authorization token, if unset, the agent should be [authorized](https://www.jetbrains.com/help/teamcity/build-agent.html#BuildAgent-BuildAgentStatus) via TeamCity UI. +- **OWN_ADDRESS** - (optional, linux only) IP address build agent binds to, autodetected +- **OWN_PORT** - (optional, linux only) Port build agent binds to, 9090 by default + +### Windows Containers Limitations + +The details on the known problems in Windows containers are available in the [TeamCity documentation](https://www.jetbrains.com/help/teamcity/known-issues.html#KnownIssues-WindowsDockerContainers). + +## Customization + +You can customize the image via the usual Docker procedure: + +1. Run the image +``` +docker run -it -e SERVER_URL="" \ + -v :/data/teamcity_agent/conf \ + --name="my-customized-agent" \ + jetbrains/teamcity-minimal-agent \ +``` +2. Enter the container +``` +docker exec -it my-customized-agent bash +``` + +3. Change whatever you need +4. Exit and [create a new image](https://docs.docker.com/engine/reference/commandline/commit/) from the container +``` +docker commit my-customized-agent +``` + +## License + +The image is available under the [TeamCity license](https://www.jetbrains.com/teamcity/buy/license.html). +TeamCity is free for perpetual use with the limitation of 100 build configurations (jobs) and 3 agents. [Licensing details](https://www.jetbrains.com/help/teamcity/licensing-policy.html). + +## Feedback + +Report issues of suggestions to the official TeamCity [issue tracker](https://youtrack.jetbrains.com/issues/TW). + +## Other TeamCity Images +* [TeamCity Server](https://hub.docker.com/r/jetbrains/teamcity-server/) +* [Build Agent](https://hub.docker.com/r/jetbrains/teamcity-agent/) diff --git a/linux/ecosystem/teamcity/agent/latest/jdk8/docker-compose.yml b/linux/ecosystem/teamcity/agent/latest/jdk8/docker-compose.yml new file mode 100644 index 000000000..181682d67 --- /dev/null +++ b/linux/ecosystem/teamcity/agent/latest/jdk8/docker-compose.yml @@ -0,0 +1,6 @@ +version: '3' +services: + app: + image: "epicmorg/teamcity-agent:latest-jdk8" + build: + context: . diff --git a/linux/ecosystem/teamcity/agent/latest/jdk8/run-agent.sh b/linux/ecosystem/teamcity/agent/latest/jdk8/run-agent.sh new file mode 100755 index 000000000..a9ded1d14 --- /dev/null +++ b/linux/ecosystem/teamcity/agent/latest/jdk8/run-agent.sh @@ -0,0 +1,90 @@ +#!/bin/bash + +check() { + if [[ $? != 0 ]]; then + echo "Error! Stopping the script." + exit 1 + fi +} + +configure() { + if [[ $# -gt 0 ]]; then + echo "run agent.sh configure $@" + ${AGENT_DIST}/bin/agent.sh configure "$@"; check + fi +} + +reconfigure() { + declare -a opts + [[ -n "${SERVER_URL}" ]] && opts[${#opts[@]}]='--server-url' && opts[${#opts[@]}]="$SERVER_URL" + [[ -n "${AGENT_TOKEN}" ]] && opts[${#opts[@]}]='--auth-token' && opts[${#opts[@]}]="$AGENT_TOKEN" + [[ -n "${AGENT_NAME}" ]] && opts[${#opts[@]}]='--name' && opts[${#opts[@]}]="$AGENT_NAME" + [[ -n "${OWN_ADDRESS}" ]] && opts[${#opts[@]}]='--ownAddress' && opts[${#opts[@]}]="$OWN_ADDRESS" + [[ -n "${OWN_PORT}" ]] && opts[${#opts[@]}]='--ownPort' && opts[${#opts[@]}]="$OWN_PORT" + if [[ 0 -ne "${#opts[@]}" ]]; then + # Using sed to strip double quotes produced by docker-compose + for i in $(seq 0 $(expr ${#opts[@]} - 1)); do + opts[$i]="$(echo "${opts[$i]}" | sed -e 's/""/"/g')" + done + configure "${opts[@]}" + echo "File buildAgent.properties was updated" + fi + for AGENT_OPT in ${AGENT_OPTS}; do + echo ${AGENT_OPT} >> ${CONFIG_DIR}/buildAgent.properties + done +} + +prepare_conf() { + echo "Will prepare agent config" ; + cp -p ${AGENT_DIST}/conf_dist/*.* ${CONFIG_DIR}/; check + cp -p ${CONFIG_DIR}/buildAgent.dist.properties ${CONFIG_DIR}/buildAgent.properties; check + reconfigure + echo "File buildAgent.properties was created and updated" ; +} + +AGENT_DIST=/opt/buildagent + +CONFIG_DIR=/data/teamcity_agent/conf + +LOG_DIR=/opt/buildagent/logs + + +rm -f ${LOG_DIR}/*.pid + +if [ -f ${CONFIG_DIR}/buildAgent.properties ] ; then + echo "File buildAgent.properties was found in ${CONFIG_DIR}" ; + reconfigure +else + echo "Will create new buildAgent.properties using distributive" ; + if [[ -n "${SERVER_URL}" ]]; then + echo "TeamCity URL is provided: ${SERVER_URL}" + else + echo "TeamCity URL is not provided, but is required." + exit 1 + fi + prepare_conf +fi + +if [ -z "$RUN_AS_BUILDAGENT" -o "$RUN_AS_BUILDAGENT" = "false" -o "$RUN_AS_BUILDAGENT" = "no" ]; then + ${AGENT_DIST}/bin/agent.sh start +else + echo "Make sure build agent directory ${AGENT_DIST} is owned by buildagent user" + chown -R buildagent:buildagent ${AGENT_DIST} + check; sync + + echo "Start build agent under buildagent user" + sudo -E -u buildagent HOME=/home/buildagent ${AGENT_DIST}/bin/agent.sh start +fi + + + +while [ ! -f ${LOG_DIR}/teamcity-agent.log ]; +do + echo -n "." + sleep 1 +done + +trap '${AGENT_DIST}/bin/agent.sh stop force; while ps -p $(cat $(ls -1 ${LOG_DIR}/*.pid)) &>/dev/null; do sleep 1; done; kill %%' SIGINT SIGTERM SIGHUP + +tail -qF ${LOG_DIR}/teamcity-agent.log & +wait diff --git a/linux/ecosystem/teamcity/agent/latest/jdk8/run-docker.sh b/linux/ecosystem/teamcity/agent/latest/jdk8/run-docker.sh new file mode 100755 index 000000000..41b5e68e5 --- /dev/null +++ b/linux/ecosystem/teamcity/agent/latest/jdk8/run-docker.sh @@ -0,0 +1,7 @@ +#!/bin/bash + +if [ "$DOCKER_IN_DOCKER" = "start" ] ; then + rm /var/run/docker.pid 2>/dev/null + service docker start + echo "Docker daemon started" +fi diff --git a/linux/ecosystem/teamcity/agent/latest/jdk8/run-services.sh b/linux/ecosystem/teamcity/agent/latest/jdk8/run-services.sh new file mode 100755 index 000000000..a574dd68a --- /dev/null +++ b/linux/ecosystem/teamcity/agent/latest/jdk8/run-services.sh @@ -0,0 +1,15 @@ +#!/bin/bash + +echo '/run-services.sh' + +for entry in /services/*.sh +do + if [[ -f "$entry" ]]; then + echo "$entry" + [[ ! -x "$entry" ]] && (chmod +x "$entry"; sync) + "$entry" + fi +done + +echo '/run-agent.sh' +exec '/run-agent.sh' diff --git a/linux/ecosystem/teamcity/agent/latest/jdk8/sources.sid.list b/linux/ecosystem/teamcity/agent/latest/jdk8/sources.sid.list new file mode 100644 index 000000000..e2ce3bf7a --- /dev/null +++ b/linux/ecosystem/teamcity/agent/latest/jdk8/sources.sid.list @@ -0,0 +1,7 @@ +#main +deb http://httpredir.debian.org/debian/ sid main contrib non-free +deb-src http://httpredir.debian.org/debian/ sid main contrib non-free + +##multimedia +#deb http://httpredir.debian.org/debian-multimedia/ sid main non-free +#deb-src http://httpredir.debian.org/debian-multimedia/ sid main non-free diff --git a/linux/ecosystem/teamcity/agent/node0.12/Dockerfile b/linux/ecosystem/teamcity/agent/node0.12/Dockerfile new file mode 100644 index 000000000..414b03ed8 --- /dev/null +++ b/linux/ecosystem/teamcity/agent/node0.12/Dockerfile @@ -0,0 +1,46 @@ +FROM epicmorg/teamcity-agent:latest +LABEL maintainer="EpicMorg DevTeam, developer@epicm.org" + +ARG DEBIAN_FRONTEND=noninteractive + +ARG K_NODE_MAJOR_VERSION=0 +ARG K_NODE_VERSION=${K_NODE_MAJOR_VERSION}.12.18 +ARG K_NODE_URL=https://nodejs.org/dist/v${K_NODE_VERSION}/node-v${K_NODE_VERSION}-linux-x64.tar.gz +ARG K_NODE_HEADERS_URL=https://nodejs.org/dist/v${K_NODE_VERSION}/node-v${K_NODE_VERSION}-headers.tar.gz + +################################################################## +# Node.js 0.x +################################################################## +RUN groupadd -g 1337 node && \ + useradd -u 1337 --gid node --shell /bin/bash --create-home node + +RUN curl --user-agent "Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Firefox/81.0" --location ${K_NODE_URL}?$(date +%s) \ + --header 'Cache-Control: no-cache, no-store' \ + --header 'Pragma: no-cache' | tar xzv --strip-components=1 --directory /usr/local/ && \ + rm -rfv /usr/local/CHANGELOG.md /usr/local/LICENSE /usr/local/README.md + +RUN curl --user-agent "Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Firefox/81.0" --location ${K_NODE_HEADERS_URL}?$(date +%s) \ + --header 'Cache-Control: no-cache, no-store' \ + --header 'Pragma: no-cache' | tar xzv --strip-components=1 --directory /usr/local/ + +#RUN npm install -g pnpm yarn + +################################################################## +# Version after install +################################################################## +RUN echo "=============================================" && \ + echo node $(node --version) && \ + echo npm $(npm --version) && \ +# echo yarn $(yarn --version) && \ +# echo pnpm $(pnpm --version) && \ + echo "=============================================" + +################################################################## +# cleanup +################################################################## +RUN apt-get purge policykit-1 -y && \ +apt-get clean -y && \ +apt-get autoclean -y && \ +rm -rfv /var/lib/apt/lists/* && \ +rm -rfv /var/cache/apt/archives/*.deb && \ +rm -rfv /tmp/* diff --git a/linux/ecosystem/teamcity/agent/node0.12/Makefile b/linux/ecosystem/teamcity/agent/node0.12/Makefile new file mode 100644 index 000000000..9ef622aa9 --- /dev/null +++ b/linux/ecosystem/teamcity/agent/node0.12/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel --progress plain + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/teamcity/agent/node0.12/README.md b/linux/ecosystem/teamcity/agent/node0.12/README.md new file mode 100644 index 000000000..b53fe01e8 --- /dev/null +++ b/linux/ecosystem/teamcity/agent/node0.12/README.md @@ -0,0 +1,93 @@ +## TeamCity Minimal Build Agent + +[](https://confluence.jetbrains.com/display/ALL/JetBrains+on+GitHub) + +This is an official [JetBrains TeamCity](https://www.jetbrains.com/teamcity/) minimal build agent image. + + More details about tags and components are [here](https://github.com/JetBrains/teamcity-docker-images/blob/master/generated/teamcity-minimal-agent.md). + +The [TeamCity build agent](https://www.jetbrains.com/help/teamcity/build-agent.html) connects to the TeamCity server and spawns the actual build processes. +You can use the ```jetbrains/teamcity-server``` image to run a TeamCity server. + +This minimal image adds just a TeamCity agent without any tools like VCS clients, etc. It is suitable for simple builds and can serve as a base for your custom images. For Java or .NET development we recommend using the default build agent image [jetbrains/teamcity-agent](https://hub.docker.com/r/jetbrains/teamcity-agent/). + +## How to Use This Image + +Pull the TeamCity minimal image from the Docker Hub Repository: + +``` +jetbrains/teamcity-minimal-agent +``` +  +and use the following command to start a container with TeamCity agent running inside +a Linux container: + +``` +docker run -it -e SERVER_URL="" \ + -v :/data/teamcity_agent/conf \ + jetbrains/teamcity-minimal-agent +``` +  +or a Windows container: +``` +docker run -it -e SERVER_URL="" + -v :C:/BuildAgent/conf + jetbrains/teamcity-minimal-agent +``` +where `` is the full URL for TeamCity server, accessible by the agent. Note that `localhost` will not generally not work as it will refer to the `localhost` inside the container. +`` is the host machine directory to serve as the TeamCity agent config directory. We recommend providing this binding in order to persist the agent configuration, e.g. authorization on the server. Note that you should map a different folder for every new agent you create. + +Since version 2020.1, TeamCity agent Docker images __run under a non-root user__. Refer to our [upgrade notes](https://www.jetbrains.com/help/teamcity/upgrade-notes.html#UpgradeNotes-AgentDockerimagesrunundernon-rootuser) for information on possible affected use cases. + +When you run the agent for the first time, you should authorize it via the TeamCity server UI: go to the **Unauthorized Agents** page in your browser. See [more details](https://www.jetbrains.com/help/teamcity/build-agent.html). + +All information about agent authorization is stored in agent's configuration folder. If you stop the container with the agent and then start a new one with the same config folder, the agent's name and authorization state will be preserved. + +TeamCity agent does not need manual upgrade: it will upgrade itself automatically on connecting to an upgraded server. + +### Agent Image Environment Variables + +- **SERVER_URL** - URL of the TeamCity server agent will connect to +- **AGENT_NAME** - (optional) Name of the agent in TeamCity UI, autogenerated if omitted +- **AGENT_TOKEN** - (optional) Agent authorization token, if unset, the agent should be [authorized](https://www.jetbrains.com/help/teamcity/build-agent.html#BuildAgent-BuildAgentStatus) via TeamCity UI. +- **OWN_ADDRESS** - (optional, linux only) IP address build agent binds to, autodetected +- **OWN_PORT** - (optional, linux only) Port build agent binds to, 9090 by default + +### Windows Containers Limitations + +The details on the known problems in Windows containers are available in the [TeamCity documentation](https://www.jetbrains.com/help/teamcity/known-issues.html#KnownIssues-WindowsDockerContainers). + +## Customization + +You can customize the image via the usual Docker procedure: + +1. Run the image +``` +docker run -it -e SERVER_URL="" \ + -v :/data/teamcity_agent/conf \ + --name="my-customized-agent" \ + jetbrains/teamcity-minimal-agent \ +``` +2. Enter the container +``` +docker exec -it my-customized-agent bash +``` + +3. Change whatever you need +4. Exit and [create a new image](https://docs.docker.com/engine/reference/commandline/commit/) from the container +``` +docker commit my-customized-agent +``` + +## License + +The image is available under the [TeamCity license](https://www.jetbrains.com/teamcity/buy/license.html). +TeamCity is free for perpetual use with the limitation of 100 build configurations (jobs) and 3 agents. [Licensing details](https://www.jetbrains.com/help/teamcity/licensing-policy.html). + +## Feedback + +Report issues of suggestions to the official TeamCity [issue tracker](https://youtrack.jetbrains.com/issues/TW). + +## Other TeamCity Images +* [TeamCity Server](https://hub.docker.com/r/jetbrains/teamcity-server/) +* [Build Agent](https://hub.docker.com/r/jetbrains/teamcity-agent/) diff --git a/linux/ecosystem/teamcity/agent/node0.12/docker-compose.yml b/linux/ecosystem/teamcity/agent/node0.12/docker-compose.yml new file mode 100644 index 000000000..561c09bb4 --- /dev/null +++ b/linux/ecosystem/teamcity/agent/node0.12/docker-compose.yml @@ -0,0 +1,6 @@ +version: '3' +services: + app: + image: "epicmorg/teamcity-agent:node0.12" + build: + context: . diff --git a/linux/ecosystem/teamcity/agent/node10/Dockerfile b/linux/ecosystem/teamcity/agent/node10/Dockerfile index 986e8e4c4..249864be2 100644 --- a/linux/ecosystem/teamcity/agent/node10/Dockerfile +++ b/linux/ecosystem/teamcity/agent/node10/Dockerfile @@ -1,35 +1,46 @@ FROM epicmorg/teamcity-agent:latest LABEL maintainer="EpicMorg DevTeam, developer@epicm.org" + ARG DEBIAN_FRONTEND=noninteractive +ARG K_NODE_MAJOR_VERSION=10 +ARG K_NODE_VERSION=${K_NODE_MAJOR_VERSION}.24.1 +ARG K_NODE_URL=https://nodejs.org/dist/v${K_NODE_VERSION}/node-v${K_NODE_VERSION}-linux-x64.tar.gz +ARG K_NODE_HEADERS_URL=https://nodejs.org/dist/v${K_NODE_VERSION}/node-v${K_NODE_VERSION}-headers.tar.gz + ################################################################## # Node.js 10.x ################################################################## -RUN groupadd node && \ - useradd --gid node --shell /bin/bash --create-home node +RUN groupadd -g 1337 node && \ + useradd -u 1337 --gid node --shell /bin/bash --create-home node -RUN curl -sL https://deb.nodesource.com/setup_10.x | bash - && \ - curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | sudo apt-key add - && \ - echo "deb https://nightly.yarnpkg.com/debian/ nightly main" > /etc/apt/sources.list.d/yarn.list && \ - apt-get update && \ - apt-cache policy nodejs && \ - apt-get install -y nodejs=10.24.1-deb-1nodesource1 yarn +RUN curl --user-agent "Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Firefox/81.0" --location ${K_NODE_URL}?$(date +%s) \ + --header 'Cache-Control: no-cache, no-store' \ + --header 'Pragma: no-cache' | tar xzv --strip-components=1 --directory /usr/local/ && \ + rm -rfv /usr/local/CHANGELOG.md /usr/local/LICENSE /usr/local/README.md -# curl -L https://www.npmjs.com/install.sh | sh -# npm install -g npm +RUN curl --user-agent "Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Firefox/81.0" --location ${K_NODE_HEADERS_URL}?$(date +%s) \ + --header 'Cache-Control: no-cache, no-store' \ + --header 'Pragma: no-cache' | tar xzv --strip-components=1 --directory /usr/local/ +RUN npm install -g pnpm@5 yarn + +################################################################## +# Version after install +################################################################## RUN echo "=============================================" && \ echo node $(node --version) && \ echo npm $(npm --version) && \ echo yarn $(yarn --version) && \ + echo pnpm $(pnpm --version) && \ echo "=============================================" ################################################################## -# cleaninig up +# cleanup ################################################################## -RUN apt clean -y && \ - apt-get clean all && \ - apt autoclean -y && \ - rm -rfv /var/lib/apt/lists/* && \ - rm -rfv /var/cache/apt/archives/*.deb && \ - rm -rfv /tmp/* +RUN apt-get purge policykit-1 -y && \ +apt-get clean -y && \ +apt-get autoclean -y && \ +rm -rfv /var/lib/apt/lists/* && \ +rm -rfv /var/cache/apt/archives/*.deb && \ +rm -rfv /tmp/* diff --git a/linux/ecosystem/teamcity/agent/node11/Dockerfile b/linux/ecosystem/teamcity/agent/node11/Dockerfile new file mode 100644 index 000000000..25a07780a --- /dev/null +++ b/linux/ecosystem/teamcity/agent/node11/Dockerfile @@ -0,0 +1,46 @@ +FROM epicmorg/teamcity-agent:latest +LABEL maintainer="EpicMorg DevTeam, developer@epicm.org" + +ARG DEBIAN_FRONTEND=noninteractive + +ARG K_NODE_MAJOR_VERSION=11 +ARG K_NODE_VERSION=${K_NODE_MAJOR_VERSION}.15.0 +ARG K_NODE_URL=https://nodejs.org/dist/v${K_NODE_VERSION}/node-v${K_NODE_VERSION}-linux-x64.tar.gz +ARG K_NODE_HEADERS_URL=https://nodejs.org/dist/v${K_NODE_VERSION}/node-v${K_NODE_VERSION}-headers.tar.gz + +################################################################## +# Node.js 11.x +################################################################## +RUN groupadd -g 1337 node && \ + useradd -u 1337 --gid node --shell /bin/bash --create-home node + +RUN curl --user-agent "Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Firefox/81.0" --location ${K_NODE_URL}?$(date +%s) \ + --header 'Cache-Control: no-cache, no-store' \ + --header 'Pragma: no-cache' | tar xzv --strip-components=1 --directory /usr/local/ && \ + rm -rfv /usr/local/CHANGELOG.md /usr/local/LICENSE /usr/local/README.md + +RUN curl --user-agent "Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Firefox/81.0" --location ${K_NODE_HEADERS_URL}?$(date +%s) \ + --header 'Cache-Control: no-cache, no-store' \ + --header 'Pragma: no-cache' | tar xzv --strip-components=1 --directory /usr/local/ + +RUN npm install -g pnpm@5 yarn + +################################################################## +# Version after install +################################################################## +RUN echo "=============================================" && \ + echo node $(node --version) && \ + echo npm $(npm --version) && \ + echo yarn $(yarn --version) && \ + echo pnpm $(pnpm --version) && \ + echo "=============================================" + +################################################################## +# cleanup +################################################################## +RUN apt-get purge policykit-1 -y && \ +apt-get clean -y && \ +apt-get autoclean -y && \ +rm -rfv /var/lib/apt/lists/* && \ +rm -rfv /var/cache/apt/archives/*.deb && \ +rm -rfv /tmp/* diff --git a/linux/ecosystem/teamcity/agent/node11/Makefile b/linux/ecosystem/teamcity/agent/node11/Makefile new file mode 100644 index 000000000..9ef622aa9 --- /dev/null +++ b/linux/ecosystem/teamcity/agent/node11/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel --progress plain + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/teamcity/agent/node11/README.md b/linux/ecosystem/teamcity/agent/node11/README.md new file mode 100644 index 000000000..b53fe01e8 --- /dev/null +++ b/linux/ecosystem/teamcity/agent/node11/README.md @@ -0,0 +1,93 @@ +## TeamCity Minimal Build Agent + +[](https://confluence.jetbrains.com/display/ALL/JetBrains+on+GitHub) + +This is an official [JetBrains TeamCity](https://www.jetbrains.com/teamcity/) minimal build agent image. + + More details about tags and components are [here](https://github.com/JetBrains/teamcity-docker-images/blob/master/generated/teamcity-minimal-agent.md). + +The [TeamCity build agent](https://www.jetbrains.com/help/teamcity/build-agent.html) connects to the TeamCity server and spawns the actual build processes. +You can use the ```jetbrains/teamcity-server``` image to run a TeamCity server. + +This minimal image adds just a TeamCity agent without any tools like VCS clients, etc. It is suitable for simple builds and can serve as a base for your custom images. For Java or .NET development we recommend using the default build agent image [jetbrains/teamcity-agent](https://hub.docker.com/r/jetbrains/teamcity-agent/). + +## How to Use This Image + +Pull the TeamCity minimal image from the Docker Hub Repository: + +``` +jetbrains/teamcity-minimal-agent +``` +  +and use the following command to start a container with TeamCity agent running inside +a Linux container: + +``` +docker run -it -e SERVER_URL="" \ + -v :/data/teamcity_agent/conf \ + jetbrains/teamcity-minimal-agent +``` +  +or a Windows container: +``` +docker run -it -e SERVER_URL="" + -v :C:/BuildAgent/conf + jetbrains/teamcity-minimal-agent +``` +where `` is the full URL for TeamCity server, accessible by the agent. Note that `localhost` will not generally not work as it will refer to the `localhost` inside the container. +`` is the host machine directory to serve as the TeamCity agent config directory. We recommend providing this binding in order to persist the agent configuration, e.g. authorization on the server. Note that you should map a different folder for every new agent you create. + +Since version 2020.1, TeamCity agent Docker images __run under a non-root user__. Refer to our [upgrade notes](https://www.jetbrains.com/help/teamcity/upgrade-notes.html#UpgradeNotes-AgentDockerimagesrunundernon-rootuser) for information on possible affected use cases. + +When you run the agent for the first time, you should authorize it via the TeamCity server UI: go to the **Unauthorized Agents** page in your browser. See [more details](https://www.jetbrains.com/help/teamcity/build-agent.html). + +All information about agent authorization is stored in agent's configuration folder. If you stop the container with the agent and then start a new one with the same config folder, the agent's name and authorization state will be preserved. + +TeamCity agent does not need manual upgrade: it will upgrade itself automatically on connecting to an upgraded server. + +### Agent Image Environment Variables + +- **SERVER_URL** - URL of the TeamCity server agent will connect to +- **AGENT_NAME** - (optional) Name of the agent in TeamCity UI, autogenerated if omitted +- **AGENT_TOKEN** - (optional) Agent authorization token, if unset, the agent should be [authorized](https://www.jetbrains.com/help/teamcity/build-agent.html#BuildAgent-BuildAgentStatus) via TeamCity UI. +- **OWN_ADDRESS** - (optional, linux only) IP address build agent binds to, autodetected +- **OWN_PORT** - (optional, linux only) Port build agent binds to, 9090 by default + +### Windows Containers Limitations + +The details on the known problems in Windows containers are available in the [TeamCity documentation](https://www.jetbrains.com/help/teamcity/known-issues.html#KnownIssues-WindowsDockerContainers). + +## Customization + +You can customize the image via the usual Docker procedure: + +1. Run the image +``` +docker run -it -e SERVER_URL="" \ + -v :/data/teamcity_agent/conf \ + --name="my-customized-agent" \ + jetbrains/teamcity-minimal-agent \ +``` +2. Enter the container +``` +docker exec -it my-customized-agent bash +``` + +3. Change whatever you need +4. Exit and [create a new image](https://docs.docker.com/engine/reference/commandline/commit/) from the container +``` +docker commit my-customized-agent +``` + +## License + +The image is available under the [TeamCity license](https://www.jetbrains.com/teamcity/buy/license.html). +TeamCity is free for perpetual use with the limitation of 100 build configurations (jobs) and 3 agents. [Licensing details](https://www.jetbrains.com/help/teamcity/licensing-policy.html). + +## Feedback + +Report issues of suggestions to the official TeamCity [issue tracker](https://youtrack.jetbrains.com/issues/TW). + +## Other TeamCity Images +* [TeamCity Server](https://hub.docker.com/r/jetbrains/teamcity-server/) +* [Build Agent](https://hub.docker.com/r/jetbrains/teamcity-agent/) diff --git a/linux/ecosystem/teamcity/agent/node11/docker-compose.yml b/linux/ecosystem/teamcity/agent/node11/docker-compose.yml new file mode 100644 index 000000000..1ceb4356c --- /dev/null +++ b/linux/ecosystem/teamcity/agent/node11/docker-compose.yml @@ -0,0 +1,6 @@ +version: '3' +services: + app: + image: "epicmorg/teamcity-agent:node11" + build: + context: . diff --git a/linux/ecosystem/teamcity/agent/node12/Dockerfile b/linux/ecosystem/teamcity/agent/node12/Dockerfile index 29cf661ce..083077558 100644 --- a/linux/ecosystem/teamcity/agent/node12/Dockerfile +++ b/linux/ecosystem/teamcity/agent/node12/Dockerfile @@ -1,23 +1,33 @@ FROM epicmorg/teamcity-agent:latest LABEL maintainer="EpicMorg DevTeam, developer@epicm.org" + ARG DEBIAN_FRONTEND=noninteractive +ARG K_NODE_MAJOR_VERSION=12 +ARG K_NODE_VERSION=${K_NODE_MAJOR_VERSION}.22.9 +ARG K_NODE_URL=https://nodejs.org/dist/v${K_NODE_VERSION}/node-v${K_NODE_VERSION}-linux-x64.tar.gz +ARG K_NODE_HEADERS_URL=https://nodejs.org/dist/v${K_NODE_VERSION}/node-v${K_NODE_VERSION}-headers.tar.gz + ################################################################## # Node.js 12.x ################################################################## -RUN groupadd node && \ - useradd --gid node --shell /bin/bash --create-home node +RUN groupadd -g 1337 node && \ + useradd -u 1337 --gid node --shell /bin/bash --create-home node -RUN curl -sL https://deb.nodesource.com/setup_12.x | bash - && \ - curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | sudo apt-key add - && \ - echo "deb https://nightly.yarnpkg.com/debian/ nightly main" > /etc/apt/sources.list.d/yarn.list && \ - apt-get update && \ - apt-get install -y nodejs yarn && \ - npm install -g pnpm +RUN curl --user-agent "Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Firefox/81.0" --location ${K_NODE_URL}?$(date +%s) \ + --header 'Cache-Control: no-cache, no-store' \ + --header 'Pragma: no-cache' | tar xzv --strip-components=1 --directory /usr/local/ && \ + rm -rfv /usr/local/CHANGELOG.md /usr/local/LICENSE /usr/local/README.md -# curl -L https://www.npmjs.com/install.sh | sh -# npm install -g npm +RUN curl --user-agent "Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Firefox/81.0" --location ${K_NODE_HEADERS_URL}?$(date +%s) \ + --header 'Cache-Control: no-cache, no-store' \ + --header 'Pragma: no-cache' | tar xzv --strip-components=1 --directory /usr/local/ +RUN npm install -g pnpm@6 yarn + +################################################################## +# Version after install +################################################################## RUN echo "=============================================" && \ echo node $(node --version) && \ echo npm $(npm --version) && \ @@ -26,11 +36,11 @@ RUN echo "=============================================" && \ echo "=============================================" ################################################################## -# cleaninig up +# cleanup ################################################################## -RUN apt clean -y && \ - apt-get clean all && \ - apt autoclean -y && \ - rm -rfv /var/lib/apt/lists/* && \ - rm -rfv /var/cache/apt/archives/*.deb && \ - rm -rfv /tmp/* +RUN apt-get purge policykit-1 -y && \ +apt-get clean -y && \ +apt-get autoclean -y && \ +rm -rfv /var/lib/apt/lists/* && \ +rm -rfv /var/cache/apt/archives/*.deb && \ +rm -rfv /tmp/* diff --git a/linux/ecosystem/teamcity/agent/node13/Dockerfile b/linux/ecosystem/teamcity/agent/node13/Dockerfile new file mode 100644 index 000000000..91305f49e --- /dev/null +++ b/linux/ecosystem/teamcity/agent/node13/Dockerfile @@ -0,0 +1,46 @@ +FROM epicmorg/teamcity-agent:latest +LABEL maintainer="EpicMorg DevTeam, developer@epicm.org" + +ARG DEBIAN_FRONTEND=noninteractive + +ARG K_NODE_MAJOR_VERSION=13 +ARG K_NODE_VERSION=${K_NODE_MAJOR_VERSION}.14.0 +ARG K_NODE_URL=https://nodejs.org/dist/v${K_NODE_VERSION}/node-v${K_NODE_VERSION}-linux-x64.tar.gz +ARG K_NODE_HEADERS_URL=https://nodejs.org/dist/v${K_NODE_VERSION}/node-v${K_NODE_VERSION}-headers.tar.gz + +################################################################## +# Node.js 13.x +################################################################## +RUN groupadd -g 1337 node && \ + useradd -u 1337 --gid node --shell /bin/bash --create-home node + +RUN curl --user-agent "Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Firefox/81.0" --location ${K_NODE_URL}?$(date +%s) \ + --header 'Cache-Control: no-cache, no-store' \ + --header 'Pragma: no-cache' | tar xzv --strip-components=1 --directory /usr/local/ && \ + rm -rfv /usr/local/CHANGELOG.md /usr/local/LICENSE /usr/local/README.md + +RUN curl --user-agent "Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Firefox/81.0" --location ${K_NODE_HEADERS_URL}?$(date +%s) \ + --header 'Cache-Control: no-cache, no-store' \ + --header 'Pragma: no-cache' | tar xzv --strip-components=1 --directory /usr/local/ + +RUN npm install -g pnpm@6 yarn + +################################################################## +# Version after install +################################################################## +RUN echo "=============================================" && \ + echo node $(node --version) && \ + echo npm $(npm --version) && \ + echo yarn $(yarn --version) && \ + echo pnpm $(pnpm --version) && \ + echo "=============================================" + +################################################################## +# cleanup +################################################################## +RUN apt-get purge policykit-1 -y && \ +apt-get clean -y && \ +apt-get autoclean -y && \ +rm -rfv /var/lib/apt/lists/* && \ +rm -rfv /var/cache/apt/archives/*.deb && \ +rm -rfv /tmp/* diff --git a/linux/ecosystem/teamcity/agent/node13/Makefile b/linux/ecosystem/teamcity/agent/node13/Makefile new file mode 100644 index 000000000..9ef622aa9 --- /dev/null +++ b/linux/ecosystem/teamcity/agent/node13/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel --progress plain + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/teamcity/agent/node13/README.md b/linux/ecosystem/teamcity/agent/node13/README.md new file mode 100644 index 000000000..b53fe01e8 --- /dev/null +++ b/linux/ecosystem/teamcity/agent/node13/README.md @@ -0,0 +1,93 @@ +## TeamCity Minimal Build Agent + +[](https://confluence.jetbrains.com/display/ALL/JetBrains+on+GitHub) + +This is an official [JetBrains TeamCity](https://www.jetbrains.com/teamcity/) minimal build agent image. + + More details about tags and components are [here](https://github.com/JetBrains/teamcity-docker-images/blob/master/generated/teamcity-minimal-agent.md). + +The [TeamCity build agent](https://www.jetbrains.com/help/teamcity/build-agent.html) connects to the TeamCity server and spawns the actual build processes. +You can use the ```jetbrains/teamcity-server``` image to run a TeamCity server. + +This minimal image adds just a TeamCity agent without any tools like VCS clients, etc. It is suitable for simple builds and can serve as a base for your custom images. For Java or .NET development we recommend using the default build agent image [jetbrains/teamcity-agent](https://hub.docker.com/r/jetbrains/teamcity-agent/). + +## How to Use This Image + +Pull the TeamCity minimal image from the Docker Hub Repository: + +``` +jetbrains/teamcity-minimal-agent +``` +  +and use the following command to start a container with TeamCity agent running inside +a Linux container: + +``` +docker run -it -e SERVER_URL="" \ + -v :/data/teamcity_agent/conf \ + jetbrains/teamcity-minimal-agent +``` +  +or a Windows container: +``` +docker run -it -e SERVER_URL="" + -v :C:/BuildAgent/conf + jetbrains/teamcity-minimal-agent +``` +where `` is the full URL for TeamCity server, accessible by the agent. Note that `localhost` will not generally not work as it will refer to the `localhost` inside the container. +`` is the host machine directory to serve as the TeamCity agent config directory. We recommend providing this binding in order to persist the agent configuration, e.g. authorization on the server. Note that you should map a different folder for every new agent you create. + +Since version 2020.1, TeamCity agent Docker images __run under a non-root user__. Refer to our [upgrade notes](https://www.jetbrains.com/help/teamcity/upgrade-notes.html#UpgradeNotes-AgentDockerimagesrunundernon-rootuser) for information on possible affected use cases. + +When you run the agent for the first time, you should authorize it via the TeamCity server UI: go to the **Unauthorized Agents** page in your browser. See [more details](https://www.jetbrains.com/help/teamcity/build-agent.html). + +All information about agent authorization is stored in agent's configuration folder. If you stop the container with the agent and then start a new one with the same config folder, the agent's name and authorization state will be preserved. + +TeamCity agent does not need manual upgrade: it will upgrade itself automatically on connecting to an upgraded server. + +### Agent Image Environment Variables + +- **SERVER_URL** - URL of the TeamCity server agent will connect to +- **AGENT_NAME** - (optional) Name of the agent in TeamCity UI, autogenerated if omitted +- **AGENT_TOKEN** - (optional) Agent authorization token, if unset, the agent should be [authorized](https://www.jetbrains.com/help/teamcity/build-agent.html#BuildAgent-BuildAgentStatus) via TeamCity UI. +- **OWN_ADDRESS** - (optional, linux only) IP address build agent binds to, autodetected +- **OWN_PORT** - (optional, linux only) Port build agent binds to, 9090 by default + +### Windows Containers Limitations + +The details on the known problems in Windows containers are available in the [TeamCity documentation](https://www.jetbrains.com/help/teamcity/known-issues.html#KnownIssues-WindowsDockerContainers). + +## Customization + +You can customize the image via the usual Docker procedure: + +1. Run the image +``` +docker run -it -e SERVER_URL="" \ + -v :/data/teamcity_agent/conf \ + --name="my-customized-agent" \ + jetbrains/teamcity-minimal-agent \ +``` +2. Enter the container +``` +docker exec -it my-customized-agent bash +``` + +3. Change whatever you need +4. Exit and [create a new image](https://docs.docker.com/engine/reference/commandline/commit/) from the container +``` +docker commit my-customized-agent +``` + +## License + +The image is available under the [TeamCity license](https://www.jetbrains.com/teamcity/buy/license.html). +TeamCity is free for perpetual use with the limitation of 100 build configurations (jobs) and 3 agents. [Licensing details](https://www.jetbrains.com/help/teamcity/licensing-policy.html). + +## Feedback + +Report issues of suggestions to the official TeamCity [issue tracker](https://youtrack.jetbrains.com/issues/TW). + +## Other TeamCity Images +* [TeamCity Server](https://hub.docker.com/r/jetbrains/teamcity-server/) +* [Build Agent](https://hub.docker.com/r/jetbrains/teamcity-agent/) diff --git a/linux/ecosystem/teamcity/agent/node13/docker-compose.yml b/linux/ecosystem/teamcity/agent/node13/docker-compose.yml new file mode 100644 index 000000000..2ac07c2bf --- /dev/null +++ b/linux/ecosystem/teamcity/agent/node13/docker-compose.yml @@ -0,0 +1,6 @@ +version: '3' +services: + app: + image: "epicmorg/teamcity-agent:node13" + build: + context: . diff --git a/linux/ecosystem/teamcity/agent/node14/Dockerfile b/linux/ecosystem/teamcity/agent/node14/Dockerfile index 0de1c2534..d8f2c7f70 100644 --- a/linux/ecosystem/teamcity/agent/node14/Dockerfile +++ b/linux/ecosystem/teamcity/agent/node14/Dockerfile @@ -1,23 +1,33 @@ FROM epicmorg/teamcity-agent:latest LABEL maintainer="EpicMorg DevTeam, developer@epicm.org" + ARG DEBIAN_FRONTEND=noninteractive +ARG K_NODE_MAJOR_VERSION=14 +ARG K_NODE_VERSION=${K_NODE_MAJOR_VERSION}.21.3 +ARG K_NODE_URL=https://nodejs.org/dist/v${K_NODE_VERSION}/node-v${K_NODE_VERSION}-linux-x64.tar.gz +ARG K_NODE_HEADERS_URL=https://nodejs.org/dist/v${K_NODE_VERSION}/node-v${K_NODE_VERSION}-headers.tar.gz + ################################################################## # Node.js 14.x ################################################################## -RUN groupadd node && \ - useradd --gid node --shell /bin/bash --create-home node +RUN groupadd -g 1337 node && \ + useradd -u 1337 --gid node --shell /bin/bash --create-home node -RUN curl -sL https://deb.nodesource.com/setup_14.x | bash - && \ - curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | sudo apt-key add - && \ - echo "deb https://nightly.yarnpkg.com/debian/ nightly main" > /etc/apt/sources.list.d/yarn.list && \ - apt-get update && \ - apt-get install -y nodejs yarn && \ - npm install -g pnpm +RUN curl --user-agent "Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Firefox/81.0" --location ${K_NODE_URL}?$(date +%s) \ + --header 'Cache-Control: no-cache, no-store' \ + --header 'Pragma: no-cache' | tar xzv --strip-components=1 --directory /usr/local/ && \ + rm -rfv /usr/local/CHANGELOG.md /usr/local/LICENSE /usr/local/README.md -# curl -L https://www.npmjs.com/install.sh | sh -# npm install -g npm +RUN curl --user-agent "Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Firefox/81.0" --location ${K_NODE_HEADERS_URL}?$(date +%s) \ + --header 'Cache-Control: no-cache, no-store' \ + --header 'Pragma: no-cache' | tar xzv --strip-components=1 --directory /usr/local/ +RUN npm install -g pnpm@7 yarn + +################################################################## +# Version after install +################################################################## RUN echo "=============================================" && \ echo node $(node --version) && \ echo npm $(npm --version) && \ @@ -26,11 +36,11 @@ RUN echo "=============================================" && \ echo "=============================================" ################################################################## -# cleaninig up +# cleanup ################################################################## -RUN apt clean -y && \ - apt-get clean all && \ - apt autoclean -y && \ - rm -rfv /var/lib/apt/lists/* && \ - rm -rfv /var/cache/apt/archives/*.deb && \ - rm -rfv /tmp/* \ No newline at end of file +RUN apt-get purge policykit-1 -y && \ +apt-get clean -y && \ +apt-get autoclean -y && \ +rm -rfv /var/lib/apt/lists/* && \ +rm -rfv /var/cache/apt/archives/*.deb && \ +rm -rfv /tmp/* diff --git a/linux/ecosystem/teamcity/agent/node15/Dockerfile b/linux/ecosystem/teamcity/agent/node15/Dockerfile index 02810f1fd..7dde105c5 100644 --- a/linux/ecosystem/teamcity/agent/node15/Dockerfile +++ b/linux/ecosystem/teamcity/agent/node15/Dockerfile @@ -1,36 +1,47 @@ FROM epicmorg/teamcity-agent:latest LABEL maintainer="EpicMorg DevTeam, developer@epicm.org" + ARG DEBIAN_FRONTEND=noninteractive +ARG K_NODE_MAJOR_VERSION=15 +ARG K_NODE_VERSION=${K_NODE_MAJOR_VERSION}.14.0 +ARG K_NODE_URL=https://nodejs.org/dist/v${K_NODE_VERSION}/node-v${K_NODE_VERSION}-linux-x64.tar.gz +ARG K_NODE_HEADERS_URL=https://nodejs.org/dist/v${K_NODE_VERSION}/node-v${K_NODE_VERSION}-headers.tar.gz + ################################################################## # Node.js 15.x ################################################################## -RUN groupadd node && \ - useradd --gid node --shell /bin/bash --create-home node +RUN groupadd -g 1337 node && \ + useradd -u 1337 --gid node --shell /bin/bash --create-home node -RUN curl -sL https://deb.nodesource.com/setup_15.x | bash - && \ - curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | sudo apt-key add - && \ - echo "deb https://nightly.yarnpkg.com/debian/ nightly main" > /etc/apt/sources.list.d/yarn.list && \ - apt-get update && \ - apt-get install -y nodejs yarn && \ - npm install -g pnpm +RUN curl --user-agent "Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Firefox/81.0" --location ${K_NODE_URL}?$(date +%s) \ + --header 'Cache-Control: no-cache, no-store' \ + --header 'Pragma: no-cache' | tar xzv --strip-components=1 --directory /usr/local/ && \ + rm -rfv /usr/local/CHANGELOG.md /usr/local/LICENSE /usr/local/README.md -# curl -L https://www.npmjs.com/install.sh | sh -# npm install -g npm +RUN curl --user-agent "Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Firefox/81.0" --location ${K_NODE_HEADERS_URL}?$(date +%s) \ + --header 'Cache-Control: no-cache, no-store' \ + --header 'Pragma: no-cache' | tar xzv --strip-components=1 --directory /usr/local/ +#RUN npm install -g pnpm yarn +RUN npm install -g yarn + +################################################################## +# Version after install +################################################################## RUN echo "=============================================" && \ echo node $(node --version) && \ echo npm $(npm --version) && \ echo yarn $(yarn --version) && \ - echo pnpm $(pnpm --version) && \ +# echo pnpm $(pnpm --version) && \ echo "=============================================" ################################################################## -# cleaninig up +# cleanup ################################################################## -RUN apt clean -y && \ - apt-get clean all && \ - apt autoclean -y && \ - rm -rfv /var/lib/apt/lists/* && \ - rm -rfv /var/cache/apt/archives/*.deb && \ - rm -rfv /tmp/* \ No newline at end of file +RUN apt-get purge policykit-1 -y && \ +apt-get clean -y && \ +apt-get autoclean -y && \ +rm -rfv /var/lib/apt/lists/* && \ +rm -rfv /var/cache/apt/archives/*.deb && \ +rm -rfv /tmp/* diff --git a/linux/ecosystem/teamcity/agent/node16/Dockerfile b/linux/ecosystem/teamcity/agent/node16/Dockerfile index 347667711..884875c02 100644 --- a/linux/ecosystem/teamcity/agent/node16/Dockerfile +++ b/linux/ecosystem/teamcity/agent/node16/Dockerfile @@ -1,36 +1,47 @@ FROM epicmorg/teamcity-agent:latest LABEL maintainer="EpicMorg DevTeam, developer@epicm.org" + ARG DEBIAN_FRONTEND=noninteractive +ARG K_NODE_MAJOR_VERSION=16 +ARG K_NODE_VERSION=${K_NODE_MAJOR_VERSION}.20.2 +ARG K_NODE_URL=https://nodejs.org/dist/v${K_NODE_VERSION}/node-v${K_NODE_VERSION}-linux-x64.tar.gz +ARG K_NODE_HEADERS_URL=https://nodejs.org/dist/v${K_NODE_VERSION}/node-v${K_NODE_VERSION}-headers.tar.gz + ################################################################## # Node.js 16.x ################################################################## -RUN groupadd node && \ - useradd --gid node --shell /bin/bash --create-home node +RUN groupadd -g 1337 node && \ + useradd -u 1337 --gid node --shell /bin/bash --create-home node -RUN curl -sL https://deb.nodesource.com/setup_16.x | bash - && \ - curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | sudo apt-key add - && \ - echo "deb https://nightly.yarnpkg.com/debian/ nightly main" > /etc/apt/sources.list.d/yarn.list && \ - apt-get update && \ - apt-get install -y nodejs yarn && \ - npm install -g pnpm +RUN curl --user-agent "Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Firefox/81.0" --location ${K_NODE_URL}?$(date +%s) \ + --header 'Cache-Control: no-cache, no-store' \ + --header 'Pragma: no-cache' | tar xzv --strip-components=1 --directory /usr/local/ && \ + rm -rfv /usr/local/CHANGELOG.md /usr/local/LICENSE /usr/local/README.md -# curl -L https://www.npmjs.com/install.sh | sh -# npm install -g npm +RUN curl --user-agent "Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Firefox/81.0" --location ${K_NODE_HEADERS_URL}?$(date +%s) \ + --header 'Cache-Control: no-cache, no-store' \ + --header 'Pragma: no-cache' | tar xzv --strip-components=1 --directory /usr/local/ +#RUN npm install -g pnpm yarn +RUN npm install -g yarn + +################################################################## +# Version after install +################################################################## RUN echo "=============================================" && \ echo node $(node --version) && \ echo npm $(npm --version) && \ echo yarn $(yarn --version) && \ - echo pnpm $(pnpm --version) && \ +# echo pnpm $(pnpm --version) && \ echo "=============================================" ################################################################## -# cleaninig up +# cleanup ################################################################## -RUN apt clean -y && \ - apt-get clean all && \ - apt autoclean -y && \ - rm -rfv /var/lib/apt/lists/* && \ - rm -rfv /var/cache/apt/archives/*.deb && \ - rm -rfv /tmp/* +RUN apt-get purge policykit-1 -y && \ +apt-get clean -y && \ +apt-get autoclean -y && \ +rm -rfv /var/lib/apt/lists/* && \ +rm -rfv /var/cache/apt/archives/*.deb && \ +rm -rfv /tmp/* diff --git a/linux/ecosystem/teamcity/agent/node17/Dockerfile b/linux/ecosystem/teamcity/agent/node17/Dockerfile index c3449bf30..8ea1262ac 100644 --- a/linux/ecosystem/teamcity/agent/node17/Dockerfile +++ b/linux/ecosystem/teamcity/agent/node17/Dockerfile @@ -1,36 +1,47 @@ FROM epicmorg/teamcity-agent:latest LABEL maintainer="EpicMorg DevTeam, developer@epicm.org" + ARG DEBIAN_FRONTEND=noninteractive +ARG K_NODE_MAJOR_VERSION=17 +ARG K_NODE_VERSION=${K_NODE_MAJOR_VERSION}.9.1 +ARG K_NODE_URL=https://nodejs.org/dist/v${K_NODE_VERSION}/node-v${K_NODE_VERSION}-linux-x64.tar.gz +ARG K_NODE_HEADERS_URL=https://nodejs.org/dist/v${K_NODE_VERSION}/node-v${K_NODE_VERSION}-headers.tar.gz + ################################################################## # Node.js 17.x ################################################################## -RUN groupadd node && \ - useradd --gid node --shell /bin/bash --create-home node +RUN groupadd -g 1337 node && \ + useradd -u 1337 --gid node --shell /bin/bash --create-home node -RUN curl -sL https://deb.nodesource.com/setup_17.x | bash - && \ - curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | sudo apt-key add - && \ - echo "deb https://nightly.yarnpkg.com/debian/ nightly main" > /etc/apt/sources.list.d/yarn.list && \ - apt-get update && \ - apt-get install -y nodejs yarn && \ - npm install -g pnpm +RUN curl --user-agent "Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Firefox/81.0" --location ${K_NODE_URL}?$(date +%s) \ + --header 'Cache-Control: no-cache, no-store' \ + --header 'Pragma: no-cache' | tar xzv --strip-components=1 --directory /usr/local/ && \ + rm -rfv /usr/local/CHANGELOG.md /usr/local/LICENSE /usr/local/README.md -# curl -L https://www.npmjs.com/install.sh | sh -# npm install -g npm +RUN curl --user-agent "Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Firefox/81.0" --location ${K_NODE_HEADERS_URL}?$(date +%s) \ + --header 'Cache-Control: no-cache, no-store' \ + --header 'Pragma: no-cache' | tar xzv --strip-components=1 --directory /usr/local/ +#RUN npm install -g pnpm yarn +RUN npm install -g yarn + +################################################################## +# Version after install +################################################################## RUN echo "=============================================" && \ echo node $(node --version) && \ echo npm $(npm --version) && \ echo yarn $(yarn --version) && \ - echo pnpm $(pnpm --version) && \ +# echo pnpm $(pnpm --version) && \ echo "=============================================" ################################################################## -# cleaninig up +# cleanup ################################################################## -RUN apt clean -y && \ - apt-get clean all && \ - apt autoclean -y && \ - rm -rfv /var/lib/apt/lists/* && \ - rm -rfv /var/cache/apt/archives/*.deb && \ - rm -rfv /tmp/* +RUN apt-get purge policykit-1 -y && \ +apt-get clean -y && \ +apt-get autoclean -y && \ +rm -rfv /var/lib/apt/lists/* && \ +rm -rfv /var/cache/apt/archives/*.deb && \ +rm -rfv /tmp/* diff --git a/linux/ecosystem/teamcity/agent/node18/Dockerfile b/linux/ecosystem/teamcity/agent/node18/Dockerfile index 31b97e408..3797c00af 100644 --- a/linux/ecosystem/teamcity/agent/node18/Dockerfile +++ b/linux/ecosystem/teamcity/agent/node18/Dockerfile @@ -1,23 +1,33 @@ FROM epicmorg/teamcity-agent:latest LABEL maintainer="EpicMorg DevTeam, developer@epicm.org" + ARG DEBIAN_FRONTEND=noninteractive +ARG K_NODE_MAJOR_VERSION=18 +ARG K_NODE_VERSION=${K_NODE_MAJOR_VERSION}.20.3 +ARG K_NODE_URL=https://nodejs.org/dist/v${K_NODE_VERSION}/node-v${K_NODE_VERSION}-linux-x64.tar.gz +ARG K_NODE_HEADERS_URL=https://nodejs.org/dist/v${K_NODE_VERSION}/node-v${K_NODE_VERSION}-headers.tar.gz + ################################################################## # Node.js 18.x ################################################################## -RUN groupadd node && \ - useradd --gid node --shell /bin/bash --create-home node +RUN groupadd -g 1337 node && \ + useradd -u 1337 --gid node --shell /bin/bash --create-home node -RUN curl -sL https://deb.nodesource.com/setup_18.x | bash - && \ - curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | sudo apt-key add - && \ - echo "deb https://nightly.yarnpkg.com/debian/ nightly main" > /etc/apt/sources.list.d/yarn.list && \ - apt-get update && \ - apt-get install -y nodejs yarn && \ - npm install -g pnpm +RUN curl --user-agent "Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Firefox/81.0" --location ${K_NODE_URL}?$(date +%s) \ + --header 'Cache-Control: no-cache, no-store' \ + --header 'Pragma: no-cache' | tar xzv --strip-components=1 --directory /usr/local/ && \ + rm -rfv /usr/local/CHANGELOG.md /usr/local/LICENSE /usr/local/README.md -# curl -L https://www.npmjs.com/install.sh | sh -# npm install -g npm +RUN curl --user-agent "Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Firefox/81.0" --location ${K_NODE_HEADERS_URL}?$(date +%s) \ + --header 'Cache-Control: no-cache, no-store' \ + --header 'Pragma: no-cache' | tar xzv --strip-components=1 --directory /usr/local/ +RUN npm install -g pnpm yarn + +################################################################## +# Version after install +################################################################## RUN echo "=============================================" && \ echo node $(node --version) && \ echo npm $(npm --version) && \ @@ -26,11 +36,11 @@ RUN echo "=============================================" && \ echo "=============================================" ################################################################## -# cleaninig up +# cleanup ################################################################## -RUN apt clean -y && \ - apt-get clean all && \ - apt autoclean -y && \ - rm -rfv /var/lib/apt/lists/* && \ - rm -rfv /var/cache/apt/archives/*.deb && \ - rm -rfv /tmp/* +RUN apt-get purge policykit-1 -y && \ +apt-get clean -y && \ +apt-get autoclean -y && \ +rm -rfv /var/lib/apt/lists/* && \ +rm -rfv /var/cache/apt/archives/*.deb && \ +rm -rfv /tmp/* diff --git a/linux/ecosystem/teamcity/agent/node19/Dockerfile b/linux/ecosystem/teamcity/agent/node19/Dockerfile index f13b882c2..b5388613a 100644 --- a/linux/ecosystem/teamcity/agent/node19/Dockerfile +++ b/linux/ecosystem/teamcity/agent/node19/Dockerfile @@ -1,23 +1,33 @@ FROM epicmorg/teamcity-agent:latest LABEL maintainer="EpicMorg DevTeam, developer@epicm.org" + ARG DEBIAN_FRONTEND=noninteractive +ARG K_NODE_MAJOR_VERSION=19 +ARG K_NODE_VERSION=${K_NODE_MAJOR_VERSION}.9.0 +ARG K_NODE_URL=https://nodejs.org/dist/v${K_NODE_VERSION}/node-v${K_NODE_VERSION}-linux-x64.tar.gz +ARG K_NODE_HEADERS_URL=https://nodejs.org/dist/v${K_NODE_VERSION}/node-v${K_NODE_VERSION}-headers.tar.gz + ################################################################## # Node.js 19.x ################################################################## -RUN groupadd node && \ - useradd --gid node --shell /bin/bash --create-home node +RUN groupadd -g 1337 node && \ + useradd -u 1337 --gid node --shell /bin/bash --create-home node -RUN curl -sL https://deb.nodesource.com/setup_19.x | bash - && \ - curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | sudo apt-key add - && \ - echo "deb https://nightly.yarnpkg.com/debian/ nightly main" > /etc/apt/sources.list.d/yarn.list && \ - apt-get update && \ - apt-get install -y nodejs yarn && \ - npm install -g pnpm +RUN curl --user-agent "Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Firefox/81.0" --location ${K_NODE_URL}?$(date +%s) \ + --header 'Cache-Control: no-cache, no-store' \ + --header 'Pragma: no-cache' | tar xzv --strip-components=1 --directory /usr/local/ && \ + rm -rfv /usr/local/CHANGELOG.md /usr/local/LICENSE /usr/local/README.md -# curl -L https://www.npmjs.com/install.sh | sh -# npm install -g npm +RUN curl --user-agent "Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Firefox/81.0" --location ${K_NODE_HEADERS_URL}?$(date +%s) \ + --header 'Cache-Control: no-cache, no-store' \ + --header 'Pragma: no-cache' | tar xzv --strip-components=1 --directory /usr/local/ +RUN npm install -g pnpm yarn + +################################################################## +# Version after install +################################################################## RUN echo "=============================================" && \ echo node $(node --version) && \ echo npm $(npm --version) && \ @@ -26,11 +36,11 @@ RUN echo "=============================================" && \ echo "=============================================" ################################################################## -# cleaninig up +# cleanup ################################################################## -RUN apt clean -y && \ - apt-get clean all && \ - apt autoclean -y && \ - rm -rfv /var/lib/apt/lists/* && \ - rm -rfv /var/cache/apt/archives/*.deb && \ - rm -rfv /tmp/* +RUN apt-get purge policykit-1 -y && \ +apt-get clean -y && \ +apt-get autoclean -y && \ +rm -rfv /var/lib/apt/lists/* && \ +rm -rfv /var/cache/apt/archives/*.deb && \ +rm -rfv /tmp/* diff --git a/linux/ecosystem/teamcity/agent/node20/Dockerfile b/linux/ecosystem/teamcity/agent/node20/Dockerfile index fca4f1d0a..50be3a2d6 100644 --- a/linux/ecosystem/teamcity/agent/node20/Dockerfile +++ b/linux/ecosystem/teamcity/agent/node20/Dockerfile @@ -1,23 +1,33 @@ FROM epicmorg/teamcity-agent:latest LABEL maintainer="EpicMorg DevTeam, developer@epicm.org" + ARG DEBIAN_FRONTEND=noninteractive +ARG K_NODE_MAJOR_VERSION=20 +ARG K_NODE_VERSION=${K_NODE_MAJOR_VERSION}.15.0 +ARG K_NODE_URL=https://nodejs.org/dist/v${K_NODE_VERSION}/node-v${K_NODE_VERSION}-linux-x64.tar.gz +ARG K_NODE_HEADERS_URL=https://nodejs.org/dist/v${K_NODE_VERSION}/node-v${K_NODE_VERSION}-headers.tar.gz + ################################################################## # Node.js 20.x ################################################################## -RUN groupadd node && \ - useradd --gid node --shell /bin/bash --create-home node +RUN groupadd -g 1337 node && \ + useradd -u 1337 --gid node --shell /bin/bash --create-home node -RUN curl -sL https://deb.nodesource.com/setup_20.x | bash - && \ - curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | sudo apt-key add - && \ - echo "deb https://nightly.yarnpkg.com/debian/ nightly main" > /etc/apt/sources.list.d/yarn.list && \ - apt-get update && \ - apt-get install -y nodejs yarn && \ - npm install -g pnpm +RUN curl --user-agent "Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Firefox/81.0" --location ${K_NODE_URL}?$(date +%s) \ + --header 'Cache-Control: no-cache, no-store' \ + --header 'Pragma: no-cache' | tar xzv --strip-components=1 --directory /usr/local/ && \ + rm -rfv /usr/local/CHANGELOG.md /usr/local/LICENSE /usr/local/README.md -# curl -L https://www.npmjs.com/install.sh | sh -# npm install -g npm +RUN curl --user-agent "Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Firefox/81.0" --location ${K_NODE_HEADERS_URL}?$(date +%s) \ + --header 'Cache-Control: no-cache, no-store' \ + --header 'Pragma: no-cache' | tar xzv --strip-components=1 --directory /usr/local/ +RUN npm install -g pnpm yarn + +################################################################## +# Version after install +################################################################## RUN echo "=============================================" && \ echo node $(node --version) && \ echo npm $(npm --version) && \ @@ -26,11 +36,11 @@ RUN echo "=============================================" && \ echo "=============================================" ################################################################## -# cleaninig up +# cleanup ################################################################## -RUN apt clean -y && \ - apt-get clean all && \ - apt autoclean -y && \ - rm -rfv /var/lib/apt/lists/* && \ - rm -rfv /var/cache/apt/archives/*.deb && \ - rm -rfv /tmp/* +RUN apt-get purge policykit-1 -y && \ +apt-get clean -y && \ +apt-get autoclean -y && \ +rm -rfv /var/lib/apt/lists/* && \ +rm -rfv /var/cache/apt/archives/*.deb && \ +rm -rfv /tmp/* diff --git a/linux/ecosystem/teamcity/agent/node21/Dockerfile b/linux/ecosystem/teamcity/agent/node21/Dockerfile index 6ba354bc2..38e2c9cdf 100644 --- a/linux/ecosystem/teamcity/agent/node21/Dockerfile +++ b/linux/ecosystem/teamcity/agent/node21/Dockerfile @@ -1,23 +1,33 @@ FROM epicmorg/teamcity-agent:latest LABEL maintainer="EpicMorg DevTeam, developer@epicm.org" + ARG DEBIAN_FRONTEND=noninteractive +ARG K_NODE_MAJOR_VERSION=21 +ARG K_NODE_VERSION=${K_NODE_MAJOR_VERSION}.7.3 +ARG K_NODE_URL=https://nodejs.org/dist/v${K_NODE_VERSION}/node-v${K_NODE_VERSION}-linux-x64.tar.gz +ARG K_NODE_HEADERS_URL=https://nodejs.org/dist/v${K_NODE_VERSION}/node-v${K_NODE_VERSION}-headers.tar.gz + ################################################################## # Node.js 21.x ################################################################## -RUN groupadd node && \ - useradd --gid node --shell /bin/bash --create-home node +RUN groupadd -g 1337 node && \ + useradd -u 1337 --gid node --shell /bin/bash --create-home node -RUN curl -sL https://deb.nodesource.com/setup_21.x | bash - && \ - curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | sudo apt-key add - && \ - echo "deb https://nightly.yarnpkg.com/debian/ nightly main" > /etc/apt/sources.list.d/yarn.list && \ - apt-get update && \ - apt-get install -y nodejs yarn && \ - npm install -g pnpm +RUN curl --user-agent "Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Firefox/81.0" --location ${K_NODE_URL}?$(date +%s) \ + --header 'Cache-Control: no-cache, no-store' \ + --header 'Pragma: no-cache' | tar xzv --strip-components=1 --directory /usr/local/ && \ + rm -rfv /usr/local/CHANGELOG.md /usr/local/LICENSE /usr/local/README.md -# curl -L https://www.npmjs.com/install.sh | sh -# npm install -g npm +RUN curl --user-agent "Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Firefox/81.0" --location ${K_NODE_HEADERS_URL}?$(date +%s) \ + --header 'Cache-Control: no-cache, no-store' \ + --header 'Pragma: no-cache' | tar xzv --strip-components=1 --directory /usr/local/ +RUN npm install -g pnpm yarn + +################################################################## +# Version after install +################################################################## RUN echo "=============================================" && \ echo node $(node --version) && \ echo npm $(npm --version) && \ @@ -26,11 +36,11 @@ RUN echo "=============================================" && \ echo "=============================================" ################################################################## -# cleaninig up +# cleanup ################################################################## -RUN apt clean -y && \ - apt-get clean all && \ - apt autoclean -y && \ - rm -rfv /var/lib/apt/lists/* && \ - rm -rfv /var/cache/apt/archives/*.deb && \ - rm -rfv /tmp/* +RUN apt-get purge policykit-1 -y && \ +apt-get clean -y && \ +apt-get autoclean -y && \ +rm -rfv /var/lib/apt/lists/* && \ +rm -rfv /var/cache/apt/archives/*.deb && \ +rm -rfv /tmp/* diff --git a/linux/ecosystem/teamcity/agent/node22/Dockerfile b/linux/ecosystem/teamcity/agent/node22/Dockerfile new file mode 100644 index 000000000..3bfb9468d --- /dev/null +++ b/linux/ecosystem/teamcity/agent/node22/Dockerfile @@ -0,0 +1,46 @@ +FROM epicmorg/teamcity-agent:latest +LABEL maintainer="EpicMorg DevTeam, developer@epicm.org" + +ARG DEBIAN_FRONTEND=noninteractive + +ARG K_NODE_MAJOR_VERSION=22 +ARG K_NODE_VERSION=${K_NODE_MAJOR_VERSION}.3.0 +ARG K_NODE_URL=https://nodejs.org/dist/v${K_NODE_VERSION}/node-v${K_NODE_VERSION}-linux-x64.tar.gz +ARG K_NODE_HEADERS_URL=https://nodejs.org/dist/v${K_NODE_VERSION}/node-v${K_NODE_VERSION}-headers.tar.gz + +################################################################## +# Node.js 22.x +################################################################## +RUN groupadd -g 1337 node && \ + useradd -u 1337 --gid node --shell /bin/bash --create-home node + +RUN curl --user-agent "Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Firefox/81.0" --location ${K_NODE_URL}?$(date +%s) \ + --header 'Cache-Control: no-cache, no-store' \ + --header 'Pragma: no-cache' | tar xzv --strip-components=1 --directory /usr/local/ && \ + rm -rfv /usr/local/CHANGELOG.md /usr/local/LICENSE /usr/local/README.md + +RUN curl --user-agent "Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Firefox/81.0" --location ${K_NODE_HEADERS_URL}?$(date +%s) \ + --header 'Cache-Control: no-cache, no-store' \ + --header 'Pragma: no-cache' | tar xzv --strip-components=1 --directory /usr/local/ + +RUN npm install -g pnpm yarn + +################################################################## +# Version after install +################################################################## +RUN echo "=============================================" && \ + echo node $(node --version) && \ + echo npm $(npm --version) && \ + echo yarn $(yarn --version) && \ + echo pnpm $(pnpm --version) && \ + echo "=============================================" + +################################################################## +# cleanup +################################################################## +RUN apt-get purge policykit-1 -y && \ +apt-get clean -y && \ +apt-get autoclean -y && \ +rm -rfv /var/lib/apt/lists/* && \ +rm -rfv /var/cache/apt/archives/*.deb && \ +rm -rfv /tmp/* diff --git a/linux/ecosystem/teamcity/agent/node22/Makefile b/linux/ecosystem/teamcity/agent/node22/Makefile new file mode 100644 index 000000000..9ef622aa9 --- /dev/null +++ b/linux/ecosystem/teamcity/agent/node22/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel --progress plain + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/teamcity/agent/node22/README.md b/linux/ecosystem/teamcity/agent/node22/README.md new file mode 100644 index 000000000..b53fe01e8 --- /dev/null +++ b/linux/ecosystem/teamcity/agent/node22/README.md @@ -0,0 +1,93 @@ +## TeamCity Minimal Build Agent + +[](https://confluence.jetbrains.com/display/ALL/JetBrains+on+GitHub) + +This is an official [JetBrains TeamCity](https://www.jetbrains.com/teamcity/) minimal build agent image. + + More details about tags and components are [here](https://github.com/JetBrains/teamcity-docker-images/blob/master/generated/teamcity-minimal-agent.md). + +The [TeamCity build agent](https://www.jetbrains.com/help/teamcity/build-agent.html) connects to the TeamCity server and spawns the actual build processes. +You can use the ```jetbrains/teamcity-server``` image to run a TeamCity server. + +This minimal image adds just a TeamCity agent without any tools like VCS clients, etc. It is suitable for simple builds and can serve as a base for your custom images. For Java or .NET development we recommend using the default build agent image [jetbrains/teamcity-agent](https://hub.docker.com/r/jetbrains/teamcity-agent/). + +## How to Use This Image + +Pull the TeamCity minimal image from the Docker Hub Repository: + +``` +jetbrains/teamcity-minimal-agent +``` +  +and use the following command to start a container with TeamCity agent running inside +a Linux container: + +``` +docker run -it -e SERVER_URL="" \ + -v :/data/teamcity_agent/conf \ + jetbrains/teamcity-minimal-agent +``` +  +or a Windows container: +``` +docker run -it -e SERVER_URL="" + -v :C:/BuildAgent/conf + jetbrains/teamcity-minimal-agent +``` +where `` is the full URL for TeamCity server, accessible by the agent. Note that `localhost` will not generally not work as it will refer to the `localhost` inside the container. +`` is the host machine directory to serve as the TeamCity agent config directory. We recommend providing this binding in order to persist the agent configuration, e.g. authorization on the server. Note that you should map a different folder for every new agent you create. + +Since version 2020.1, TeamCity agent Docker images __run under a non-root user__. Refer to our [upgrade notes](https://www.jetbrains.com/help/teamcity/upgrade-notes.html#UpgradeNotes-AgentDockerimagesrunundernon-rootuser) for information on possible affected use cases. + +When you run the agent for the first time, you should authorize it via the TeamCity server UI: go to the **Unauthorized Agents** page in your browser. See [more details](https://www.jetbrains.com/help/teamcity/build-agent.html). + +All information about agent authorization is stored in agent's configuration folder. If you stop the container with the agent and then start a new one with the same config folder, the agent's name and authorization state will be preserved. + +TeamCity agent does not need manual upgrade: it will upgrade itself automatically on connecting to an upgraded server. + +### Agent Image Environment Variables + +- **SERVER_URL** - URL of the TeamCity server agent will connect to +- **AGENT_NAME** - (optional) Name of the agent in TeamCity UI, autogenerated if omitted +- **AGENT_TOKEN** - (optional) Agent authorization token, if unset, the agent should be [authorized](https://www.jetbrains.com/help/teamcity/build-agent.html#BuildAgent-BuildAgentStatus) via TeamCity UI. +- **OWN_ADDRESS** - (optional, linux only) IP address build agent binds to, autodetected +- **OWN_PORT** - (optional, linux only) Port build agent binds to, 9090 by default + +### Windows Containers Limitations + +The details on the known problems in Windows containers are available in the [TeamCity documentation](https://www.jetbrains.com/help/teamcity/known-issues.html#KnownIssues-WindowsDockerContainers). + +## Customization + +You can customize the image via the usual Docker procedure: + +1. Run the image +``` +docker run -it -e SERVER_URL="" \ + -v :/data/teamcity_agent/conf \ + --name="my-customized-agent" \ + jetbrains/teamcity-minimal-agent \ +``` +2. Enter the container +``` +docker exec -it my-customized-agent bash +``` + +3. Change whatever you need +4. Exit and [create a new image](https://docs.docker.com/engine/reference/commandline/commit/) from the container +``` +docker commit my-customized-agent +``` + +## License + +The image is available under the [TeamCity license](https://www.jetbrains.com/teamcity/buy/license.html). +TeamCity is free for perpetual use with the limitation of 100 build configurations (jobs) and 3 agents. [Licensing details](https://www.jetbrains.com/help/teamcity/licensing-policy.html). + +## Feedback + +Report issues of suggestions to the official TeamCity [issue tracker](https://youtrack.jetbrains.com/issues/TW). + +## Other TeamCity Images +* [TeamCity Server](https://hub.docker.com/r/jetbrains/teamcity-server/) +* [Build Agent](https://hub.docker.com/r/jetbrains/teamcity-agent/) diff --git a/linux/ecosystem/teamcity/agent/node22/docker-compose.yml b/linux/ecosystem/teamcity/agent/node22/docker-compose.yml new file mode 100644 index 000000000..f6595484d --- /dev/null +++ b/linux/ecosystem/teamcity/agent/node22/docker-compose.yml @@ -0,0 +1,6 @@ +version: '3' +services: + app: + image: "epicmorg/teamcity-agent:node22" + build: + context: . diff --git a/linux/ecosystem/teamcity/agent/node4/Dockerfile b/linux/ecosystem/teamcity/agent/node4/Dockerfile new file mode 100644 index 000000000..d2702624e --- /dev/null +++ b/linux/ecosystem/teamcity/agent/node4/Dockerfile @@ -0,0 +1,47 @@ +FROM epicmorg/teamcity-agent:latest +LABEL maintainer="EpicMorg DevTeam, developer@epicm.org" + +ARG DEBIAN_FRONTEND=noninteractive + +ARG K_NODE_MAJOR_VERSION=4 +ARG K_NODE_VERSION=${K_NODE_MAJOR_VERSION}.9.1 +ARG K_NODE_URL=https://nodejs.org/dist/v${K_NODE_VERSION}/node-v${K_NODE_VERSION}-linux-x64.tar.gz +ARG K_NODE_HEADERS_URL=https://nodejs.org/dist/v${K_NODE_VERSION}/node-v${K_NODE_VERSION}-headers.tar.gz + +################################################################## +# Node.js 4.x +################################################################## +RUN groupadd -g 1337 node && \ + useradd -u 1337 --gid node --shell /bin/bash --create-home node + +RUN curl --user-agent "Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Firefox/81.0" --location ${K_NODE_URL}?$(date +%s) \ + --header 'Cache-Control: no-cache, no-store' \ + --header 'Pragma: no-cache' | tar xzv --strip-components=1 --directory /usr/local/ && \ + rm -rfv /usr/local/CHANGELOG.md /usr/local/LICENSE /usr/local/README.md + +RUN curl --user-agent "Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Firefox/81.0" --location ${K_NODE_HEADERS_URL}?$(date +%s) \ + --header 'Cache-Control: no-cache, no-store' \ + --header 'Pragma: no-cache' | tar xzv --strip-components=1 --directory /usr/local/ + +#RUN npm install -g pnpm yarn +RUN npm install -g pnpm@2 + +################################################################## +# Version after install +################################################################## +RUN echo "=============================================" && \ + echo node $(node --version) && \ + echo npm $(npm --version) && \ +# echo yarn $(yarn --version) && \ + echo pnpm $(pnpm --version) && \ + echo "=============================================" + +################################################################## +# cleanup +################################################################## +RUN apt-get purge policykit-1 -y && \ +apt-get clean -y && \ +apt-get autoclean -y && \ +rm -rfv /var/lib/apt/lists/* && \ +rm -rfv /var/cache/apt/archives/*.deb && \ +rm -rfv /tmp/* diff --git a/linux/ecosystem/teamcity/agent/node4/Makefile b/linux/ecosystem/teamcity/agent/node4/Makefile new file mode 100644 index 000000000..9ef622aa9 --- /dev/null +++ b/linux/ecosystem/teamcity/agent/node4/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel --progress plain + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/teamcity/agent/node4/README.md b/linux/ecosystem/teamcity/agent/node4/README.md new file mode 100644 index 000000000..b53fe01e8 --- /dev/null +++ b/linux/ecosystem/teamcity/agent/node4/README.md @@ -0,0 +1,93 @@ +## TeamCity Minimal Build Agent + +[](https://confluence.jetbrains.com/display/ALL/JetBrains+on+GitHub) + +This is an official [JetBrains TeamCity](https://www.jetbrains.com/teamcity/) minimal build agent image. + + More details about tags and components are [here](https://github.com/JetBrains/teamcity-docker-images/blob/master/generated/teamcity-minimal-agent.md). + +The [TeamCity build agent](https://www.jetbrains.com/help/teamcity/build-agent.html) connects to the TeamCity server and spawns the actual build processes. +You can use the ```jetbrains/teamcity-server``` image to run a TeamCity server. + +This minimal image adds just a TeamCity agent without any tools like VCS clients, etc. It is suitable for simple builds and can serve as a base for your custom images. For Java or .NET development we recommend using the default build agent image [jetbrains/teamcity-agent](https://hub.docker.com/r/jetbrains/teamcity-agent/). + +## How to Use This Image + +Pull the TeamCity minimal image from the Docker Hub Repository: + +``` +jetbrains/teamcity-minimal-agent +``` +  +and use the following command to start a container with TeamCity agent running inside +a Linux container: + +``` +docker run -it -e SERVER_URL="" \ + -v :/data/teamcity_agent/conf \ + jetbrains/teamcity-minimal-agent +``` +  +or a Windows container: +``` +docker run -it -e SERVER_URL="" + -v :C:/BuildAgent/conf + jetbrains/teamcity-minimal-agent +``` +where `` is the full URL for TeamCity server, accessible by the agent. Note that `localhost` will not generally not work as it will refer to the `localhost` inside the container. +`` is the host machine directory to serve as the TeamCity agent config directory. We recommend providing this binding in order to persist the agent configuration, e.g. authorization on the server. Note that you should map a different folder for every new agent you create. + +Since version 2020.1, TeamCity agent Docker images __run under a non-root user__. Refer to our [upgrade notes](https://www.jetbrains.com/help/teamcity/upgrade-notes.html#UpgradeNotes-AgentDockerimagesrunundernon-rootuser) for information on possible affected use cases. + +When you run the agent for the first time, you should authorize it via the TeamCity server UI: go to the **Unauthorized Agents** page in your browser. See [more details](https://www.jetbrains.com/help/teamcity/build-agent.html). + +All information about agent authorization is stored in agent's configuration folder. If you stop the container with the agent and then start a new one with the same config folder, the agent's name and authorization state will be preserved. + +TeamCity agent does not need manual upgrade: it will upgrade itself automatically on connecting to an upgraded server. + +### Agent Image Environment Variables + +- **SERVER_URL** - URL of the TeamCity server agent will connect to +- **AGENT_NAME** - (optional) Name of the agent in TeamCity UI, autogenerated if omitted +- **AGENT_TOKEN** - (optional) Agent authorization token, if unset, the agent should be [authorized](https://www.jetbrains.com/help/teamcity/build-agent.html#BuildAgent-BuildAgentStatus) via TeamCity UI. +- **OWN_ADDRESS** - (optional, linux only) IP address build agent binds to, autodetected +- **OWN_PORT** - (optional, linux only) Port build agent binds to, 9090 by default + +### Windows Containers Limitations + +The details on the known problems in Windows containers are available in the [TeamCity documentation](https://www.jetbrains.com/help/teamcity/known-issues.html#KnownIssues-WindowsDockerContainers). + +## Customization + +You can customize the image via the usual Docker procedure: + +1. Run the image +``` +docker run -it -e SERVER_URL="" \ + -v :/data/teamcity_agent/conf \ + --name="my-customized-agent" \ + jetbrains/teamcity-minimal-agent \ +``` +2. Enter the container +``` +docker exec -it my-customized-agent bash +``` + +3. Change whatever you need +4. Exit and [create a new image](https://docs.docker.com/engine/reference/commandline/commit/) from the container +``` +docker commit my-customized-agent +``` + +## License + +The image is available under the [TeamCity license](https://www.jetbrains.com/teamcity/buy/license.html). +TeamCity is free for perpetual use with the limitation of 100 build configurations (jobs) and 3 agents. [Licensing details](https://www.jetbrains.com/help/teamcity/licensing-policy.html). + +## Feedback + +Report issues of suggestions to the official TeamCity [issue tracker](https://youtrack.jetbrains.com/issues/TW). + +## Other TeamCity Images +* [TeamCity Server](https://hub.docker.com/r/jetbrains/teamcity-server/) +* [Build Agent](https://hub.docker.com/r/jetbrains/teamcity-agent/) diff --git a/linux/ecosystem/teamcity/agent/node4/docker-compose.yml b/linux/ecosystem/teamcity/agent/node4/docker-compose.yml new file mode 100644 index 000000000..d1f59fa3b --- /dev/null +++ b/linux/ecosystem/teamcity/agent/node4/docker-compose.yml @@ -0,0 +1,6 @@ +version: '3' +services: + app: + image: "epicmorg/teamcity-agent:node4" + build: + context: . diff --git a/linux/ecosystem/teamcity/agent/node5/Dockerfile b/linux/ecosystem/teamcity/agent/node5/Dockerfile new file mode 100644 index 000000000..de1e90441 --- /dev/null +++ b/linux/ecosystem/teamcity/agent/node5/Dockerfile @@ -0,0 +1,47 @@ +FROM epicmorg/teamcity-agent:latest +LABEL maintainer="EpicMorg DevTeam, developer@epicm.org" + +ARG DEBIAN_FRONTEND=noninteractive + +ARG K_NODE_MAJOR_VERSION=5 +ARG K_NODE_VERSION=${K_NODE_MAJOR_VERSION}.9.1 +ARG K_NODE_URL=https://nodejs.org/dist/v${K_NODE_VERSION}/node-v${K_NODE_VERSION}-linux-x64.tar.gz +ARG K_NODE_HEADERS_URL=https://nodejs.org/dist/v${K_NODE_VERSION}/node-v${K_NODE_VERSION}-headers.tar.gz + +################################################################## +# Node.js 5.x +################################################################## +RUN groupadd -g 1337 node && \ + useradd -u 1337 --gid node --shell /bin/bash --create-home node + +RUN curl --user-agent "Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Firefox/81.0" --location ${K_NODE_URL}?$(date +%s) \ + --header 'Cache-Control: no-cache, no-store' \ + --header 'Pragma: no-cache' | tar xzv --strip-components=1 --directory /usr/local/ && \ + rm -rfv /usr/local/CHANGELOG.md /usr/local/LICENSE /usr/local/README.md + +RUN curl --user-agent "Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Firefox/81.0" --location ${K_NODE_HEADERS_URL}?$(date +%s) \ + --header 'Cache-Control: no-cache, no-store' \ + --header 'Pragma: no-cache' | tar xzv --strip-components=1 --directory /usr/local/ + +#RUN npm install -g pnpm yarn +RUN npm install -g pnpm@2 + +################################################################## +# Version after install +################################################################## +RUN echo "=============================================" && \ + echo node $(node --version) && \ + echo npm $(npm --version) && \ +# echo yarn $(yarn --version) && \ + echo pnpm $(pnpm --version) && \ + echo "=============================================" + +################################################################## +# cleanup +################################################################## +RUN apt-get purge policykit-1 -y && \ +apt-get clean -y && \ +apt-get autoclean -y && \ +rm -rfv /var/lib/apt/lists/* && \ +rm -rfv /var/cache/apt/archives/*.deb && \ +rm -rfv /tmp/* diff --git a/linux/ecosystem/teamcity/agent/node5/Makefile b/linux/ecosystem/teamcity/agent/node5/Makefile new file mode 100644 index 000000000..9ef622aa9 --- /dev/null +++ b/linux/ecosystem/teamcity/agent/node5/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel --progress plain + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/teamcity/agent/node5/README.md b/linux/ecosystem/teamcity/agent/node5/README.md new file mode 100644 index 000000000..b53fe01e8 --- /dev/null +++ b/linux/ecosystem/teamcity/agent/node5/README.md @@ -0,0 +1,93 @@ +## TeamCity Minimal Build Agent + +[](https://confluence.jetbrains.com/display/ALL/JetBrains+on+GitHub) + +This is an official [JetBrains TeamCity](https://www.jetbrains.com/teamcity/) minimal build agent image. + + More details about tags and components are [here](https://github.com/JetBrains/teamcity-docker-images/blob/master/generated/teamcity-minimal-agent.md). + +The [TeamCity build agent](https://www.jetbrains.com/help/teamcity/build-agent.html) connects to the TeamCity server and spawns the actual build processes. +You can use the ```jetbrains/teamcity-server``` image to run a TeamCity server. + +This minimal image adds just a TeamCity agent without any tools like VCS clients, etc. It is suitable for simple builds and can serve as a base for your custom images. For Java or .NET development we recommend using the default build agent image [jetbrains/teamcity-agent](https://hub.docker.com/r/jetbrains/teamcity-agent/). + +## How to Use This Image + +Pull the TeamCity minimal image from the Docker Hub Repository: + +``` +jetbrains/teamcity-minimal-agent +``` +  +and use the following command to start a container with TeamCity agent running inside +a Linux container: + +``` +docker run -it -e SERVER_URL="" \ + -v :/data/teamcity_agent/conf \ + jetbrains/teamcity-minimal-agent +``` +  +or a Windows container: +``` +docker run -it -e SERVER_URL="" + -v :C:/BuildAgent/conf + jetbrains/teamcity-minimal-agent +``` +where `` is the full URL for TeamCity server, accessible by the agent. Note that `localhost` will not generally not work as it will refer to the `localhost` inside the container. +`` is the host machine directory to serve as the TeamCity agent config directory. We recommend providing this binding in order to persist the agent configuration, e.g. authorization on the server. Note that you should map a different folder for every new agent you create. + +Since version 2020.1, TeamCity agent Docker images __run under a non-root user__. Refer to our [upgrade notes](https://www.jetbrains.com/help/teamcity/upgrade-notes.html#UpgradeNotes-AgentDockerimagesrunundernon-rootuser) for information on possible affected use cases. + +When you run the agent for the first time, you should authorize it via the TeamCity server UI: go to the **Unauthorized Agents** page in your browser. See [more details](https://www.jetbrains.com/help/teamcity/build-agent.html). + +All information about agent authorization is stored in agent's configuration folder. If you stop the container with the agent and then start a new one with the same config folder, the agent's name and authorization state will be preserved. + +TeamCity agent does not need manual upgrade: it will upgrade itself automatically on connecting to an upgraded server. + +### Agent Image Environment Variables + +- **SERVER_URL** - URL of the TeamCity server agent will connect to +- **AGENT_NAME** - (optional) Name of the agent in TeamCity UI, autogenerated if omitted +- **AGENT_TOKEN** - (optional) Agent authorization token, if unset, the agent should be [authorized](https://www.jetbrains.com/help/teamcity/build-agent.html#BuildAgent-BuildAgentStatus) via TeamCity UI. +- **OWN_ADDRESS** - (optional, linux only) IP address build agent binds to, autodetected +- **OWN_PORT** - (optional, linux only) Port build agent binds to, 9090 by default + +### Windows Containers Limitations + +The details on the known problems in Windows containers are available in the [TeamCity documentation](https://www.jetbrains.com/help/teamcity/known-issues.html#KnownIssues-WindowsDockerContainers). + +## Customization + +You can customize the image via the usual Docker procedure: + +1. Run the image +``` +docker run -it -e SERVER_URL="" \ + -v :/data/teamcity_agent/conf \ + --name="my-customized-agent" \ + jetbrains/teamcity-minimal-agent \ +``` +2. Enter the container +``` +docker exec -it my-customized-agent bash +``` + +3. Change whatever you need +4. Exit and [create a new image](https://docs.docker.com/engine/reference/commandline/commit/) from the container +``` +docker commit my-customized-agent +``` + +## License + +The image is available under the [TeamCity license](https://www.jetbrains.com/teamcity/buy/license.html). +TeamCity is free for perpetual use with the limitation of 100 build configurations (jobs) and 3 agents. [Licensing details](https://www.jetbrains.com/help/teamcity/licensing-policy.html). + +## Feedback + +Report issues of suggestions to the official TeamCity [issue tracker](https://youtrack.jetbrains.com/issues/TW). + +## Other TeamCity Images +* [TeamCity Server](https://hub.docker.com/r/jetbrains/teamcity-server/) +* [Build Agent](https://hub.docker.com/r/jetbrains/teamcity-agent/) diff --git a/linux/ecosystem/teamcity/agent/node5/docker-compose.yml b/linux/ecosystem/teamcity/agent/node5/docker-compose.yml new file mode 100644 index 000000000..11ad69d3c --- /dev/null +++ b/linux/ecosystem/teamcity/agent/node5/docker-compose.yml @@ -0,0 +1,6 @@ +version: '3' +services: + app: + image: "epicmorg/teamcity-agent:node5" + build: + context: . diff --git a/linux/ecosystem/teamcity/agent/node6/Dockerfile b/linux/ecosystem/teamcity/agent/node6/Dockerfile new file mode 100644 index 000000000..39c0326d0 --- /dev/null +++ b/linux/ecosystem/teamcity/agent/node6/Dockerfile @@ -0,0 +1,47 @@ +FROM epicmorg/teamcity-agent:latest +LABEL maintainer="EpicMorg DevTeam, developer@epicm.org" + +ARG DEBIAN_FRONTEND=noninteractive + +ARG K_NODE_MAJOR_VERSION=6 +ARG K_NODE_VERSION=${K_NODE_MAJOR_VERSION}.17.1 +ARG K_NODE_URL=https://nodejs.org/dist/v${K_NODE_VERSION}/node-v${K_NODE_VERSION}-linux-x64.tar.gz +ARG K_NODE_HEADERS_URL=https://nodejs.org/dist/v${K_NODE_VERSION}/node-v${K_NODE_VERSION}-headers.tar.gz + +################################################################## +# Node.js 6.x +################################################################## +RUN groupadd -g 1337 node && \ + useradd -u 1337 --gid node --shell /bin/bash --create-home node + +RUN curl --user-agent "Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Firefox/81.0" --location ${K_NODE_URL}?$(date +%s) \ + --header 'Cache-Control: no-cache, no-store' \ + --header 'Pragma: no-cache' | tar xzv --strip-components=1 --directory /usr/local/ && \ + rm -rfv /usr/local/CHANGELOG.md /usr/local/LICENSE /usr/local/README.md + +RUN curl --user-agent "Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Firefox/81.0" --location ${K_NODE_HEADERS_URL}?$(date +%s) \ + --header 'Cache-Control: no-cache, no-store' \ + --header 'Pragma: no-cache' | tar xzv --strip-components=1 --directory /usr/local/ + +#RUN npm install -g pnpm yarn +RUN npm install -g pnpm@2 + +################################################################## +# Version after install +################################################################## +RUN echo "=============================================" && \ + echo node $(node --version) && \ + echo npm $(npm --version) && \ +# echo yarn $(yarn --version) && \ + echo pnpm $(pnpm --version) && \ + echo "=============================================" + +################################################################## +# cleanup +################################################################## +RUN apt-get purge policykit-1 -y && \ +apt-get clean -y && \ +apt-get autoclean -y && \ +rm -rfv /var/lib/apt/lists/* && \ +rm -rfv /var/cache/apt/archives/*.deb && \ +rm -rfv /tmp/* diff --git a/linux/ecosystem/teamcity/agent/node6/Makefile b/linux/ecosystem/teamcity/agent/node6/Makefile new file mode 100644 index 000000000..9ef622aa9 --- /dev/null +++ b/linux/ecosystem/teamcity/agent/node6/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel --progress plain + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/teamcity/agent/node6/README.md b/linux/ecosystem/teamcity/agent/node6/README.md new file mode 100644 index 000000000..b53fe01e8 --- /dev/null +++ b/linux/ecosystem/teamcity/agent/node6/README.md @@ -0,0 +1,93 @@ +## TeamCity Minimal Build Agent + +[](https://confluence.jetbrains.com/display/ALL/JetBrains+on+GitHub) + +This is an official [JetBrains TeamCity](https://www.jetbrains.com/teamcity/) minimal build agent image. + + More details about tags and components are [here](https://github.com/JetBrains/teamcity-docker-images/blob/master/generated/teamcity-minimal-agent.md). + +The [TeamCity build agent](https://www.jetbrains.com/help/teamcity/build-agent.html) connects to the TeamCity server and spawns the actual build processes. +You can use the ```jetbrains/teamcity-server``` image to run a TeamCity server. + +This minimal image adds just a TeamCity agent without any tools like VCS clients, etc. It is suitable for simple builds and can serve as a base for your custom images. For Java or .NET development we recommend using the default build agent image [jetbrains/teamcity-agent](https://hub.docker.com/r/jetbrains/teamcity-agent/). + +## How to Use This Image + +Pull the TeamCity minimal image from the Docker Hub Repository: + +``` +jetbrains/teamcity-minimal-agent +``` +  +and use the following command to start a container with TeamCity agent running inside +a Linux container: + +``` +docker run -it -e SERVER_URL="" \ + -v :/data/teamcity_agent/conf \ + jetbrains/teamcity-minimal-agent +``` +  +or a Windows container: +``` +docker run -it -e SERVER_URL="" + -v :C:/BuildAgent/conf + jetbrains/teamcity-minimal-agent +``` +where `` is the full URL for TeamCity server, accessible by the agent. Note that `localhost` will not generally not work as it will refer to the `localhost` inside the container. +`` is the host machine directory to serve as the TeamCity agent config directory. We recommend providing this binding in order to persist the agent configuration, e.g. authorization on the server. Note that you should map a different folder for every new agent you create. + +Since version 2020.1, TeamCity agent Docker images __run under a non-root user__. Refer to our [upgrade notes](https://www.jetbrains.com/help/teamcity/upgrade-notes.html#UpgradeNotes-AgentDockerimagesrunundernon-rootuser) for information on possible affected use cases. + +When you run the agent for the first time, you should authorize it via the TeamCity server UI: go to the **Unauthorized Agents** page in your browser. See [more details](https://www.jetbrains.com/help/teamcity/build-agent.html). + +All information about agent authorization is stored in agent's configuration folder. If you stop the container with the agent and then start a new one with the same config folder, the agent's name and authorization state will be preserved. + +TeamCity agent does not need manual upgrade: it will upgrade itself automatically on connecting to an upgraded server. + +### Agent Image Environment Variables + +- **SERVER_URL** - URL of the TeamCity server agent will connect to +- **AGENT_NAME** - (optional) Name of the agent in TeamCity UI, autogenerated if omitted +- **AGENT_TOKEN** - (optional) Agent authorization token, if unset, the agent should be [authorized](https://www.jetbrains.com/help/teamcity/build-agent.html#BuildAgent-BuildAgentStatus) via TeamCity UI. +- **OWN_ADDRESS** - (optional, linux only) IP address build agent binds to, autodetected +- **OWN_PORT** - (optional, linux only) Port build agent binds to, 9090 by default + +### Windows Containers Limitations + +The details on the known problems in Windows containers are available in the [TeamCity documentation](https://www.jetbrains.com/help/teamcity/known-issues.html#KnownIssues-WindowsDockerContainers). + +## Customization + +You can customize the image via the usual Docker procedure: + +1. Run the image +``` +docker run -it -e SERVER_URL="" \ + -v :/data/teamcity_agent/conf \ + --name="my-customized-agent" \ + jetbrains/teamcity-minimal-agent \ +``` +2. Enter the container +``` +docker exec -it my-customized-agent bash +``` + +3. Change whatever you need +4. Exit and [create a new image](https://docs.docker.com/engine/reference/commandline/commit/) from the container +``` +docker commit my-customized-agent +``` + +## License + +The image is available under the [TeamCity license](https://www.jetbrains.com/teamcity/buy/license.html). +TeamCity is free for perpetual use with the limitation of 100 build configurations (jobs) and 3 agents. [Licensing details](https://www.jetbrains.com/help/teamcity/licensing-policy.html). + +## Feedback + +Report issues of suggestions to the official TeamCity [issue tracker](https://youtrack.jetbrains.com/issues/TW). + +## Other TeamCity Images +* [TeamCity Server](https://hub.docker.com/r/jetbrains/teamcity-server/) +* [Build Agent](https://hub.docker.com/r/jetbrains/teamcity-agent/) diff --git a/linux/ecosystem/teamcity/agent/node6/docker-compose.yml b/linux/ecosystem/teamcity/agent/node6/docker-compose.yml new file mode 100644 index 000000000..26e2513b2 --- /dev/null +++ b/linux/ecosystem/teamcity/agent/node6/docker-compose.yml @@ -0,0 +1,6 @@ +version: '3' +services: + app: + image: "epicmorg/teamcity-agent:node6" + build: + context: . diff --git a/linux/ecosystem/teamcity/agent/node7/Dockerfile b/linux/ecosystem/teamcity/agent/node7/Dockerfile new file mode 100644 index 000000000..b3e4b8082 --- /dev/null +++ b/linux/ecosystem/teamcity/agent/node7/Dockerfile @@ -0,0 +1,46 @@ +FROM epicmorg/teamcity-agent:latest +LABEL maintainer="EpicMorg DevTeam, developer@epicm.org" + +ARG DEBIAN_FRONTEND=noninteractive + +ARG K_NODE_MAJOR_VERSION=7 +ARG K_NODE_VERSION=${K_NODE_MAJOR_VERSION}.10.1 +ARG K_NODE_URL=https://nodejs.org/dist/v${K_NODE_VERSION}/node-v${K_NODE_VERSION}-linux-x64.tar.gz +ARG K_NODE_HEADERS_URL=https://nodejs.org/dist/v${K_NODE_VERSION}/node-v${K_NODE_VERSION}-headers.tar.gz + +################################################################## +# Node.js 7.x +################################################################## +RUN groupadd -g 1337 node && \ + useradd -u 1337 --gid node --shell /bin/bash --create-home node + +RUN curl --user-agent "Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Firefox/81.0" --location ${K_NODE_URL}?$(date +%s) \ + --header 'Cache-Control: no-cache, no-store' \ + --header 'Pragma: no-cache' | tar xzv --strip-components=1 --directory /usr/local/ && \ + rm -rfv /usr/local/CHANGELOG.md /usr/local/LICENSE /usr/local/README.md + +RUN curl --user-agent "Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Firefox/81.0" --location ${K_NODE_HEADERS_URL}?$(date +%s) \ + --header 'Cache-Control: no-cache, no-store' \ + --header 'Pragma: no-cache' | tar xzv --strip-components=1 --directory /usr/local/ + +RUN npm install -g pnpm@3 yarn + +################################################################## +# Version after install +################################################################## +RUN echo "=============================================" && \ + echo node $(node --version) && \ + echo npm $(npm --version) && \ + echo yarn $(yarn --version) && \ + echo pnpm $(pnpm --version) && \ + echo "=============================================" + +################################################################## +# cleanup +################################################################## +RUN apt-get purge policykit-1 -y && \ +apt-get clean -y && \ +apt-get autoclean -y && \ +rm -rfv /var/lib/apt/lists/* && \ +rm -rfv /var/cache/apt/archives/*.deb && \ +rm -rfv /tmp/* diff --git a/linux/ecosystem/teamcity/agent/node7/Makefile b/linux/ecosystem/teamcity/agent/node7/Makefile new file mode 100644 index 000000000..9ef622aa9 --- /dev/null +++ b/linux/ecosystem/teamcity/agent/node7/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel --progress plain + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/teamcity/agent/node7/README.md b/linux/ecosystem/teamcity/agent/node7/README.md new file mode 100644 index 000000000..b53fe01e8 --- /dev/null +++ b/linux/ecosystem/teamcity/agent/node7/README.md @@ -0,0 +1,93 @@ +## TeamCity Minimal Build Agent + +[](https://confluence.jetbrains.com/display/ALL/JetBrains+on+GitHub) + +This is an official [JetBrains TeamCity](https://www.jetbrains.com/teamcity/) minimal build agent image. + + More details about tags and components are [here](https://github.com/JetBrains/teamcity-docker-images/blob/master/generated/teamcity-minimal-agent.md). + +The [TeamCity build agent](https://www.jetbrains.com/help/teamcity/build-agent.html) connects to the TeamCity server and spawns the actual build processes. +You can use the ```jetbrains/teamcity-server``` image to run a TeamCity server. + +This minimal image adds just a TeamCity agent without any tools like VCS clients, etc. It is suitable for simple builds and can serve as a base for your custom images. For Java or .NET development we recommend using the default build agent image [jetbrains/teamcity-agent](https://hub.docker.com/r/jetbrains/teamcity-agent/). + +## How to Use This Image + +Pull the TeamCity minimal image from the Docker Hub Repository: + +``` +jetbrains/teamcity-minimal-agent +``` +  +and use the following command to start a container with TeamCity agent running inside +a Linux container: + +``` +docker run -it -e SERVER_URL="" \ + -v :/data/teamcity_agent/conf \ + jetbrains/teamcity-minimal-agent +``` +  +or a Windows container: +``` +docker run -it -e SERVER_URL="" + -v :C:/BuildAgent/conf + jetbrains/teamcity-minimal-agent +``` +where `` is the full URL for TeamCity server, accessible by the agent. Note that `localhost` will not generally not work as it will refer to the `localhost` inside the container. +`` is the host machine directory to serve as the TeamCity agent config directory. We recommend providing this binding in order to persist the agent configuration, e.g. authorization on the server. Note that you should map a different folder for every new agent you create. + +Since version 2020.1, TeamCity agent Docker images __run under a non-root user__. Refer to our [upgrade notes](https://www.jetbrains.com/help/teamcity/upgrade-notes.html#UpgradeNotes-AgentDockerimagesrunundernon-rootuser) for information on possible affected use cases. + +When you run the agent for the first time, you should authorize it via the TeamCity server UI: go to the **Unauthorized Agents** page in your browser. See [more details](https://www.jetbrains.com/help/teamcity/build-agent.html). + +All information about agent authorization is stored in agent's configuration folder. If you stop the container with the agent and then start a new one with the same config folder, the agent's name and authorization state will be preserved. + +TeamCity agent does not need manual upgrade: it will upgrade itself automatically on connecting to an upgraded server. + +### Agent Image Environment Variables + +- **SERVER_URL** - URL of the TeamCity server agent will connect to +- **AGENT_NAME** - (optional) Name of the agent in TeamCity UI, autogenerated if omitted +- **AGENT_TOKEN** - (optional) Agent authorization token, if unset, the agent should be [authorized](https://www.jetbrains.com/help/teamcity/build-agent.html#BuildAgent-BuildAgentStatus) via TeamCity UI. +- **OWN_ADDRESS** - (optional, linux only) IP address build agent binds to, autodetected +- **OWN_PORT** - (optional, linux only) Port build agent binds to, 9090 by default + +### Windows Containers Limitations + +The details on the known problems in Windows containers are available in the [TeamCity documentation](https://www.jetbrains.com/help/teamcity/known-issues.html#KnownIssues-WindowsDockerContainers). + +## Customization + +You can customize the image via the usual Docker procedure: + +1. Run the image +``` +docker run -it -e SERVER_URL="" \ + -v :/data/teamcity_agent/conf \ + --name="my-customized-agent" \ + jetbrains/teamcity-minimal-agent \ +``` +2. Enter the container +``` +docker exec -it my-customized-agent bash +``` + +3. Change whatever you need +4. Exit and [create a new image](https://docs.docker.com/engine/reference/commandline/commit/) from the container +``` +docker commit my-customized-agent +``` + +## License + +The image is available under the [TeamCity license](https://www.jetbrains.com/teamcity/buy/license.html). +TeamCity is free for perpetual use with the limitation of 100 build configurations (jobs) and 3 agents. [Licensing details](https://www.jetbrains.com/help/teamcity/licensing-policy.html). + +## Feedback + +Report issues of suggestions to the official TeamCity [issue tracker](https://youtrack.jetbrains.com/issues/TW). + +## Other TeamCity Images +* [TeamCity Server](https://hub.docker.com/r/jetbrains/teamcity-server/) +* [Build Agent](https://hub.docker.com/r/jetbrains/teamcity-agent/) diff --git a/linux/ecosystem/teamcity/agent/node7/docker-compose.yml b/linux/ecosystem/teamcity/agent/node7/docker-compose.yml new file mode 100644 index 000000000..26c1fdfe3 --- /dev/null +++ b/linux/ecosystem/teamcity/agent/node7/docker-compose.yml @@ -0,0 +1,6 @@ +version: '3' +services: + app: + image: "epicmorg/teamcity-agent:node7" + build: + context: . diff --git a/linux/ecosystem/teamcity/agent/node8/Dockerfile b/linux/ecosystem/teamcity/agent/node8/Dockerfile new file mode 100644 index 000000000..e371bc441 --- /dev/null +++ b/linux/ecosystem/teamcity/agent/node8/Dockerfile @@ -0,0 +1,46 @@ +FROM epicmorg/teamcity-agent:latest +LABEL maintainer="EpicMorg DevTeam, developer@epicm.org" + +ARG DEBIAN_FRONTEND=noninteractive + +ARG K_NODE_MAJOR_VERSION=8 +ARG K_NODE_VERSION=${K_NODE_MAJOR_VERSION}.17.0 +ARG K_NODE_URL=https://nodejs.org/dist/v${K_NODE_VERSION}/node-v${K_NODE_VERSION}-linux-x64.tar.gz +ARG K_NODE_HEADERS_URL=https://nodejs.org/dist/v${K_NODE_VERSION}/node-v${K_NODE_VERSION}-headers.tar.gz + +################################################################## +# Node.js 8.x +################################################################## +RUN groupadd -g 1337 node && \ + useradd -u 1337 --gid node --shell /bin/bash --create-home node + +RUN curl --user-agent "Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Firefox/81.0" --location ${K_NODE_URL}?$(date +%s) \ + --header 'Cache-Control: no-cache, no-store' \ + --header 'Pragma: no-cache' | tar xzv --strip-components=1 --directory /usr/local/ && \ + rm -rfv /usr/local/CHANGELOG.md /usr/local/LICENSE /usr/local/README.md + +RUN curl --user-agent "Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Firefox/81.0" --location ${K_NODE_HEADERS_URL}?$(date +%s) \ + --header 'Cache-Control: no-cache, no-store' \ + --header 'Pragma: no-cache' | tar xzv --strip-components=1 --directory /usr/local/ + +RUN npm install -g pnpm@3 yarn + +################################################################## +# Version after install +################################################################## +RUN echo "=============================================" && \ + echo node $(node --version) && \ + echo npm $(npm --version) && \ + echo yarn $(yarn --version) && \ + echo pnpm $(pnpm --version) && \ + echo "=============================================" + +################################################################## +# cleanup +################################################################## +RUN apt-get purge policykit-1 -y && \ +apt-get clean -y && \ +apt-get autoclean -y && \ +rm -rfv /var/lib/apt/lists/* && \ +rm -rfv /var/cache/apt/archives/*.deb && \ +rm -rfv /tmp/* diff --git a/linux/ecosystem/teamcity/agent/node8/Makefile b/linux/ecosystem/teamcity/agent/node8/Makefile new file mode 100644 index 000000000..9ef622aa9 --- /dev/null +++ b/linux/ecosystem/teamcity/agent/node8/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel --progress plain + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/teamcity/agent/node8/README.md b/linux/ecosystem/teamcity/agent/node8/README.md new file mode 100644 index 000000000..b53fe01e8 --- /dev/null +++ b/linux/ecosystem/teamcity/agent/node8/README.md @@ -0,0 +1,93 @@ +## TeamCity Minimal Build Agent + +[](https://confluence.jetbrains.com/display/ALL/JetBrains+on+GitHub) + +This is an official [JetBrains TeamCity](https://www.jetbrains.com/teamcity/) minimal build agent image. + + More details about tags and components are [here](https://github.com/JetBrains/teamcity-docker-images/blob/master/generated/teamcity-minimal-agent.md). + +The [TeamCity build agent](https://www.jetbrains.com/help/teamcity/build-agent.html) connects to the TeamCity server and spawns the actual build processes. +You can use the ```jetbrains/teamcity-server``` image to run a TeamCity server. + +This minimal image adds just a TeamCity agent without any tools like VCS clients, etc. It is suitable for simple builds and can serve as a base for your custom images. For Java or .NET development we recommend using the default build agent image [jetbrains/teamcity-agent](https://hub.docker.com/r/jetbrains/teamcity-agent/). + +## How to Use This Image + +Pull the TeamCity minimal image from the Docker Hub Repository: + +``` +jetbrains/teamcity-minimal-agent +``` +  +and use the following command to start a container with TeamCity agent running inside +a Linux container: + +``` +docker run -it -e SERVER_URL="" \ + -v :/data/teamcity_agent/conf \ + jetbrains/teamcity-minimal-agent +``` +  +or a Windows container: +``` +docker run -it -e SERVER_URL="" + -v :C:/BuildAgent/conf + jetbrains/teamcity-minimal-agent +``` +where `` is the full URL for TeamCity server, accessible by the agent. Note that `localhost` will not generally not work as it will refer to the `localhost` inside the container. +`` is the host machine directory to serve as the TeamCity agent config directory. We recommend providing this binding in order to persist the agent configuration, e.g. authorization on the server. Note that you should map a different folder for every new agent you create. + +Since version 2020.1, TeamCity agent Docker images __run under a non-root user__. Refer to our [upgrade notes](https://www.jetbrains.com/help/teamcity/upgrade-notes.html#UpgradeNotes-AgentDockerimagesrunundernon-rootuser) for information on possible affected use cases. + +When you run the agent for the first time, you should authorize it via the TeamCity server UI: go to the **Unauthorized Agents** page in your browser. See [more details](https://www.jetbrains.com/help/teamcity/build-agent.html). + +All information about agent authorization is stored in agent's configuration folder. If you stop the container with the agent and then start a new one with the same config folder, the agent's name and authorization state will be preserved. + +TeamCity agent does not need manual upgrade: it will upgrade itself automatically on connecting to an upgraded server. + +### Agent Image Environment Variables + +- **SERVER_URL** - URL of the TeamCity server agent will connect to +- **AGENT_NAME** - (optional) Name of the agent in TeamCity UI, autogenerated if omitted +- **AGENT_TOKEN** - (optional) Agent authorization token, if unset, the agent should be [authorized](https://www.jetbrains.com/help/teamcity/build-agent.html#BuildAgent-BuildAgentStatus) via TeamCity UI. +- **OWN_ADDRESS** - (optional, linux only) IP address build agent binds to, autodetected +- **OWN_PORT** - (optional, linux only) Port build agent binds to, 9090 by default + +### Windows Containers Limitations + +The details on the known problems in Windows containers are available in the [TeamCity documentation](https://www.jetbrains.com/help/teamcity/known-issues.html#KnownIssues-WindowsDockerContainers). + +## Customization + +You can customize the image via the usual Docker procedure: + +1. Run the image +``` +docker run -it -e SERVER_URL="" \ + -v :/data/teamcity_agent/conf \ + --name="my-customized-agent" \ + jetbrains/teamcity-minimal-agent \ +``` +2. Enter the container +``` +docker exec -it my-customized-agent bash +``` + +3. Change whatever you need +4. Exit and [create a new image](https://docs.docker.com/engine/reference/commandline/commit/) from the container +``` +docker commit my-customized-agent +``` + +## License + +The image is available under the [TeamCity license](https://www.jetbrains.com/teamcity/buy/license.html). +TeamCity is free for perpetual use with the limitation of 100 build configurations (jobs) and 3 agents. [Licensing details](https://www.jetbrains.com/help/teamcity/licensing-policy.html). + +## Feedback + +Report issues of suggestions to the official TeamCity [issue tracker](https://youtrack.jetbrains.com/issues/TW). + +## Other TeamCity Images +* [TeamCity Server](https://hub.docker.com/r/jetbrains/teamcity-server/) +* [Build Agent](https://hub.docker.com/r/jetbrains/teamcity-agent/) diff --git a/linux/ecosystem/teamcity/agent/node8/docker-compose.yml b/linux/ecosystem/teamcity/agent/node8/docker-compose.yml new file mode 100644 index 000000000..23498d0d8 --- /dev/null +++ b/linux/ecosystem/teamcity/agent/node8/docker-compose.yml @@ -0,0 +1,6 @@ +version: '3' +services: + app: + image: "epicmorg/teamcity-agent:node8" + build: + context: . diff --git a/linux/ecosystem/teamcity/agent/node9/Dockerfile b/linux/ecosystem/teamcity/agent/node9/Dockerfile new file mode 100644 index 000000000..d754e9665 --- /dev/null +++ b/linux/ecosystem/teamcity/agent/node9/Dockerfile @@ -0,0 +1,46 @@ +FROM epicmorg/teamcity-agent:latest +LABEL maintainer="EpicMorg DevTeam, developer@epicm.org" + +ARG DEBIAN_FRONTEND=noninteractive + +ARG K_NODE_MAJOR_VERSION=9 +ARG K_NODE_VERSION=${K_NODE_MAJOR_VERSION}.11.2 +ARG K_NODE_URL=https://nodejs.org/dist/v${K_NODE_VERSION}/node-v${K_NODE_VERSION}-linux-x64.tar.gz +ARG K_NODE_HEADERS_URL=https://nodejs.org/dist/v${K_NODE_VERSION}/node-v${K_NODE_VERSION}-headers.tar.gz + +################################################################## +# Node.js 9.x +################################################################## +RUN groupadd -g 1337 node && \ + useradd -u 1337 --gid node --shell /bin/bash --create-home node + +RUN curl --user-agent "Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Firefox/81.0" --location ${K_NODE_URL}?$(date +%s) \ + --header 'Cache-Control: no-cache, no-store' \ + --header 'Pragma: no-cache' | tar xzv --strip-components=1 --directory /usr/local/ && \ + rm -rfv /usr/local/CHANGELOG.md /usr/local/LICENSE /usr/local/README.md + +RUN curl --user-agent "Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Firefox/81.0" --location ${K_NODE_HEADERS_URL}?$(date +%s) \ + --header 'Cache-Control: no-cache, no-store' \ + --header 'Pragma: no-cache' | tar xzv --strip-components=1 --directory /usr/local/ + +RUN npm install -g pnpm@3 yarn + +################################################################## +# Version after install +################################################################## +RUN echo "=============================================" && \ + echo node $(node --version) && \ + echo npm $(npm --version) && \ + echo yarn $(yarn --version) && \ + echo pnpm $(pnpm --version) && \ + echo "=============================================" + +################################################################## +# cleanup +################################################################## +RUN apt-get purge policykit-1 -y && \ +apt-get clean -y && \ +apt-get autoclean -y && \ +rm -rfv /var/lib/apt/lists/* && \ +rm -rfv /var/cache/apt/archives/*.deb && \ +rm -rfv /tmp/* diff --git a/linux/ecosystem/teamcity/agent/node9/Makefile b/linux/ecosystem/teamcity/agent/node9/Makefile new file mode 100644 index 000000000..9ef622aa9 --- /dev/null +++ b/linux/ecosystem/teamcity/agent/node9/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel --progress plain + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/teamcity/agent/node9/README.md b/linux/ecosystem/teamcity/agent/node9/README.md new file mode 100644 index 000000000..b53fe01e8 --- /dev/null +++ b/linux/ecosystem/teamcity/agent/node9/README.md @@ -0,0 +1,93 @@ +## TeamCity Minimal Build Agent + +[](https://confluence.jetbrains.com/display/ALL/JetBrains+on+GitHub) + +This is an official [JetBrains TeamCity](https://www.jetbrains.com/teamcity/) minimal build agent image. + + More details about tags and components are [here](https://github.com/JetBrains/teamcity-docker-images/blob/master/generated/teamcity-minimal-agent.md). + +The [TeamCity build agent](https://www.jetbrains.com/help/teamcity/build-agent.html) connects to the TeamCity server and spawns the actual build processes. +You can use the ```jetbrains/teamcity-server``` image to run a TeamCity server. + +This minimal image adds just a TeamCity agent without any tools like VCS clients, etc. It is suitable for simple builds and can serve as a base for your custom images. For Java or .NET development we recommend using the default build agent image [jetbrains/teamcity-agent](https://hub.docker.com/r/jetbrains/teamcity-agent/). + +## How to Use This Image + +Pull the TeamCity minimal image from the Docker Hub Repository: + +``` +jetbrains/teamcity-minimal-agent +``` +  +and use the following command to start a container with TeamCity agent running inside +a Linux container: + +``` +docker run -it -e SERVER_URL="" \ + -v :/data/teamcity_agent/conf \ + jetbrains/teamcity-minimal-agent +``` +  +or a Windows container: +``` +docker run -it -e SERVER_URL="" + -v :C:/BuildAgent/conf + jetbrains/teamcity-minimal-agent +``` +where `` is the full URL for TeamCity server, accessible by the agent. Note that `localhost` will not generally not work as it will refer to the `localhost` inside the container. +`` is the host machine directory to serve as the TeamCity agent config directory. We recommend providing this binding in order to persist the agent configuration, e.g. authorization on the server. Note that you should map a different folder for every new agent you create. + +Since version 2020.1, TeamCity agent Docker images __run under a non-root user__. Refer to our [upgrade notes](https://www.jetbrains.com/help/teamcity/upgrade-notes.html#UpgradeNotes-AgentDockerimagesrunundernon-rootuser) for information on possible affected use cases. + +When you run the agent for the first time, you should authorize it via the TeamCity server UI: go to the **Unauthorized Agents** page in your browser. See [more details](https://www.jetbrains.com/help/teamcity/build-agent.html). + +All information about agent authorization is stored in agent's configuration folder. If you stop the container with the agent and then start a new one with the same config folder, the agent's name and authorization state will be preserved. + +TeamCity agent does not need manual upgrade: it will upgrade itself automatically on connecting to an upgraded server. + +### Agent Image Environment Variables + +- **SERVER_URL** - URL of the TeamCity server agent will connect to +- **AGENT_NAME** - (optional) Name of the agent in TeamCity UI, autogenerated if omitted +- **AGENT_TOKEN** - (optional) Agent authorization token, if unset, the agent should be [authorized](https://www.jetbrains.com/help/teamcity/build-agent.html#BuildAgent-BuildAgentStatus) via TeamCity UI. +- **OWN_ADDRESS** - (optional, linux only) IP address build agent binds to, autodetected +- **OWN_PORT** - (optional, linux only) Port build agent binds to, 9090 by default + +### Windows Containers Limitations + +The details on the known problems in Windows containers are available in the [TeamCity documentation](https://www.jetbrains.com/help/teamcity/known-issues.html#KnownIssues-WindowsDockerContainers). + +## Customization + +You can customize the image via the usual Docker procedure: + +1. Run the image +``` +docker run -it -e SERVER_URL="" \ + -v :/data/teamcity_agent/conf \ + --name="my-customized-agent" \ + jetbrains/teamcity-minimal-agent \ +``` +2. Enter the container +``` +docker exec -it my-customized-agent bash +``` + +3. Change whatever you need +4. Exit and [create a new image](https://docs.docker.com/engine/reference/commandline/commit/) from the container +``` +docker commit my-customized-agent +``` + +## License + +The image is available under the [TeamCity license](https://www.jetbrains.com/teamcity/buy/license.html). +TeamCity is free for perpetual use with the limitation of 100 build configurations (jobs) and 3 agents. [Licensing details](https://www.jetbrains.com/help/teamcity/licensing-policy.html). + +## Feedback + +Report issues of suggestions to the official TeamCity [issue tracker](https://youtrack.jetbrains.com/issues/TW). + +## Other TeamCity Images +* [TeamCity Server](https://hub.docker.com/r/jetbrains/teamcity-server/) +* [Build Agent](https://hub.docker.com/r/jetbrains/teamcity-agent/) diff --git a/linux/ecosystem/teamcity/agent/node9/docker-compose.yml b/linux/ecosystem/teamcity/agent/node9/docker-compose.yml new file mode 100644 index 000000000..d07a732d9 --- /dev/null +++ b/linux/ecosystem/teamcity/agent/node9/docker-compose.yml @@ -0,0 +1,6 @@ +version: '3' +services: + app: + image: "epicmorg/teamcity-agent:node9" + build: + context: . diff --git a/linux/ecosystem/teamcity/agent/php7.2/Dockerfile b/linux/ecosystem/teamcity/agent/php7.2/Dockerfile index 3907d89cb..c7b21ede3 100644 --- a/linux/ecosystem/teamcity/agent/php7.2/Dockerfile +++ b/linux/ecosystem/teamcity/agent/php7.2/Dockerfile @@ -2,17 +2,21 @@ FROM epicmorg/php:php7.2 LABEL maintainer="EpicMorg DevTeam, developer@epicm.org" ARG DEBIAN_FRONTEND=noninteractive +ARG K_JDK_MAJOR_VERSION=jdk-17.0.11 +ARG K_JDK_VERSION=17.0.11 +ARG K_JDK_BUILD_VERSION=9 +ARG K_JDK_URL=https://github.com/adoptium/temurin17-binaries/releases/download/${K_JDK_MAJOR_VERSION}+${K_JDK_BUILD_VERSION}/OpenJDK17U-jdk_x64_linux_hotspot_${K_JDK_VERSION}_${K_JDK_BUILD_VERSION}.tar.gz + +ENV JAVA_HOME=/opt/${K_JDK_MAJOR_VERSION}+${K_JDK_BUILD_VERSION} +ENV PATH=$PATH:${JAVA_HOME}/bin + ################################################################## -# installing java11 +# installing java17 ################################################################## -RUN wget -qO - https://adoptopenjdk.jfrog.io/adoptopenjdk/api/gpg/key/public | apt-key add - && \ - echo 'deb https://adoptopenjdk.jfrog.io/adoptopenjdk/deb/ buster main' > /etc/apt/sources.list.d/adoptopenjdk-official.list && \ - apt-get update && \ - apt-get autoremove -y && \ - apt-get install -y --allow-unauthenticated adoptopenjdk-11-hotspot && \ - mkdir /usr/lib/jvm/adoptopenjdk-11-hotspot-amd64/jre && \ - ln -s /usr/lib/jvm/adoptopenjdk-11-hotspot-amd64/bin/ /usr/lib/jvm/adoptopenjdk-11-hotspot-amd64/jre/bin && \ - ln -s /usr/lib/jvm/adoptopenjdk-11-hotspot-amd64/lib/ /usr/lib/jvm/adoptopenjdk-11-hotspot-amd64/jre/lib +RUN curl --user-agent "Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Firefox/81.0" --location ${K_JDK_URL}?$(date +%s) \ + --header 'Cache-Control: no-cache, no-store' \ + --header 'Pragma: no-cache' | tar xzv --directory /opt && \ + java -version ################################################################## # teamcity minimal agent diff --git a/linux/ecosystem/teamcity/agent/php7.3/Dockerfile b/linux/ecosystem/teamcity/agent/php7.3/Dockerfile index 8682d4bb5..782a7e467 100644 --- a/linux/ecosystem/teamcity/agent/php7.3/Dockerfile +++ b/linux/ecosystem/teamcity/agent/php7.3/Dockerfile @@ -2,17 +2,21 @@ FROM epicmorg/php:php7.3 LABEL maintainer="EpicMorg DevTeam, developer@epicm.org" ARG DEBIAN_FRONTEND=noninteractive +ARG K_JDK_MAJOR_VERSION=jdk-17.0.11 +ARG K_JDK_VERSION=17.0.11 +ARG K_JDK_BUILD_VERSION=9 +ARG K_JDK_URL=https://github.com/adoptium/temurin17-binaries/releases/download/${K_JDK_MAJOR_VERSION}+${K_JDK_BUILD_VERSION}/OpenJDK17U-jdk_x64_linux_hotspot_${K_JDK_VERSION}_${K_JDK_BUILD_VERSION}.tar.gz + +ENV JAVA_HOME=/opt/${K_JDK_MAJOR_VERSION}+${K_JDK_BUILD_VERSION} +ENV PATH=$PATH:${JAVA_HOME}/bin + ################################################################## -# installing java11 +# installing java17 ################################################################## -RUN wget -qO - https://adoptopenjdk.jfrog.io/adoptopenjdk/api/gpg/key/public | apt-key add - && \ - echo 'deb https://adoptopenjdk.jfrog.io/adoptopenjdk/deb/ buster main' > /etc/apt/sources.list.d/adoptopenjdk-official.list && \ - apt-get update && \ - apt-get autoremove -y && \ - apt-get install -y --allow-unauthenticated adoptopenjdk-11-hotspot && \ - mkdir /usr/lib/jvm/adoptopenjdk-11-hotspot-amd64/jre && \ - ln -s /usr/lib/jvm/adoptopenjdk-11-hotspot-amd64/bin/ /usr/lib/jvm/adoptopenjdk-11-hotspot-amd64/jre/bin && \ - ln -s /usr/lib/jvm/adoptopenjdk-11-hotspot-amd64/lib/ /usr/lib/jvm/adoptopenjdk-11-hotspot-amd64/jre/lib +RUN curl --user-agent "Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Firefox/81.0" --location ${K_JDK_URL}?$(date +%s) \ + --header 'Cache-Control: no-cache, no-store' \ + --header 'Pragma: no-cache' | tar xzv --directory /opt && \ + java -version ################################################################## # teamcity minimal agent diff --git a/linux/ecosystem/teamcity/agent/php7.4/Dockerfile b/linux/ecosystem/teamcity/agent/php7.4/Dockerfile index ba022369c..1e70e3571 100644 --- a/linux/ecosystem/teamcity/agent/php7.4/Dockerfile +++ b/linux/ecosystem/teamcity/agent/php7.4/Dockerfile @@ -2,17 +2,21 @@ FROM epicmorg/php:php7.4 LABEL maintainer="EpicMorg DevTeam, developer@epicm.org" ARG DEBIAN_FRONTEND=noninteractive +ARG K_JDK_MAJOR_VERSION=jdk-17.0.11 +ARG K_JDK_VERSION=17.0.11 +ARG K_JDK_BUILD_VERSION=9 +ARG K_JDK_URL=https://github.com/adoptium/temurin17-binaries/releases/download/${K_JDK_MAJOR_VERSION}+${K_JDK_BUILD_VERSION}/OpenJDK17U-jdk_x64_linux_hotspot_${K_JDK_VERSION}_${K_JDK_BUILD_VERSION}.tar.gz + +ENV JAVA_HOME=/opt/${K_JDK_MAJOR_VERSION}+${K_JDK_BUILD_VERSION} +ENV PATH=$PATH:${JAVA_HOME}/bin + ################################################################## -# installing java11 +# installing java17 ################################################################## -RUN wget -qO - https://adoptopenjdk.jfrog.io/adoptopenjdk/api/gpg/key/public | apt-key add - && \ - echo 'deb https://adoptopenjdk.jfrog.io/adoptopenjdk/deb/ buster main' > /etc/apt/sources.list.d/adoptopenjdk-official.list && \ - apt-get update && \ - apt-get autoremove -y && \ - apt-get install -y --allow-unauthenticated adoptopenjdk-11-hotspot && \ - mkdir /usr/lib/jvm/adoptopenjdk-11-hotspot-amd64/jre && \ - ln -s /usr/lib/jvm/adoptopenjdk-11-hotspot-amd64/bin/ /usr/lib/jvm/adoptopenjdk-11-hotspot-amd64/jre/bin && \ - ln -s /usr/lib/jvm/adoptopenjdk-11-hotspot-amd64/lib/ /usr/lib/jvm/adoptopenjdk-11-hotspot-amd64/jre/lib +RUN curl --user-agent "Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Firefox/81.0" --location ${K_JDK_URL}?$(date +%s) \ + --header 'Cache-Control: no-cache, no-store' \ + --header 'Pragma: no-cache' | tar xzv --directory /opt && \ + java -version ################################################################## # teamcity minimal agent diff --git a/linux/ecosystem/teamcity/agent/php8.0/Dockerfile b/linux/ecosystem/teamcity/agent/php8.0/Dockerfile index 2395feed7..bf5472e36 100644 --- a/linux/ecosystem/teamcity/agent/php8.0/Dockerfile +++ b/linux/ecosystem/teamcity/agent/php8.0/Dockerfile @@ -2,17 +2,21 @@ FROM epicmorg/php:php8.0 LABEL maintainer="EpicMorg DevTeam, developer@epicm.org" ARG DEBIAN_FRONTEND=noninteractive +ARG K_JDK_MAJOR_VERSION=jdk-17.0.11 +ARG K_JDK_VERSION=17.0.11 +ARG K_JDK_BUILD_VERSION=9 +ARG K_JDK_URL=https://github.com/adoptium/temurin17-binaries/releases/download/${K_JDK_MAJOR_VERSION}+${K_JDK_BUILD_VERSION}/OpenJDK17U-jdk_x64_linux_hotspot_${K_JDK_VERSION}_${K_JDK_BUILD_VERSION}.tar.gz + +ENV JAVA_HOME=/opt/${K_JDK_MAJOR_VERSION}+${K_JDK_BUILD_VERSION} +ENV PATH=$PATH:${JAVA_HOME}/bin + ################################################################## -# installing java11 +# installing java17 ################################################################## -RUN wget -qO - https://adoptopenjdk.jfrog.io/adoptopenjdk/api/gpg/key/public | apt-key add - && \ - echo 'deb https://adoptopenjdk.jfrog.io/adoptopenjdk/deb/ buster main' > /etc/apt/sources.list.d/adoptopenjdk-official.list && \ - apt-get update && \ - apt-get autoremove -y && \ - apt-get install -y --allow-unauthenticated adoptopenjdk-11-hotspot && \ - mkdir /usr/lib/jvm/adoptopenjdk-11-hotspot-amd64/jre && \ - ln -s /usr/lib/jvm/adoptopenjdk-11-hotspot-amd64/bin/ /usr/lib/jvm/adoptopenjdk-11-hotspot-amd64/jre/bin && \ - ln -s /usr/lib/jvm/adoptopenjdk-11-hotspot-amd64/lib/ /usr/lib/jvm/adoptopenjdk-11-hotspot-amd64/jre/lib +RUN curl --user-agent "Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Firefox/81.0" --location ${K_JDK_URL}?$(date +%s) \ + --header 'Cache-Control: no-cache, no-store' \ + --header 'Pragma: no-cache' | tar xzv --directory /opt && \ + java -version ################################################################## # teamcity minimal agent diff --git a/linux/ecosystem/teamcity/agent/php8.1/Dockerfile b/linux/ecosystem/teamcity/agent/php8.1/Dockerfile index 9bc218655..ee103a733 100644 --- a/linux/ecosystem/teamcity/agent/php8.1/Dockerfile +++ b/linux/ecosystem/teamcity/agent/php8.1/Dockerfile @@ -2,17 +2,21 @@ FROM epicmorg/php:php8.1 LABEL maintainer="EpicMorg DevTeam, developer@epicm.org" ARG DEBIAN_FRONTEND=noninteractive +ARG K_JDK_MAJOR_VERSION=jdk-17.0.11 +ARG K_JDK_VERSION=17.0.11 +ARG K_JDK_BUILD_VERSION=9 +ARG K_JDK_URL=https://github.com/adoptium/temurin17-binaries/releases/download/${K_JDK_MAJOR_VERSION}+${K_JDK_BUILD_VERSION}/OpenJDK17U-jdk_x64_linux_hotspot_${K_JDK_VERSION}_${K_JDK_BUILD_VERSION}.tar.gz + +ENV JAVA_HOME=/opt/${K_JDK_MAJOR_VERSION}+${K_JDK_BUILD_VERSION} +ENV PATH=$PATH:${JAVA_HOME}/bin + ################################################################## -# installing java11 +# installing java17 ################################################################## -RUN wget -qO - https://adoptopenjdk.jfrog.io/adoptopenjdk/api/gpg/key/public | apt-key add - && \ - echo 'deb https://adoptopenjdk.jfrog.io/adoptopenjdk/deb/ buster main' > /etc/apt/sources.list.d/adoptopenjdk-official.list && \ - apt-get update && \ - apt-get autoremove -y && \ - apt-get install -y --allow-unauthenticated adoptopenjdk-11-hotspot && \ - mkdir /usr/lib/jvm/adoptopenjdk-11-hotspot-amd64/jre && \ - ln -s /usr/lib/jvm/adoptopenjdk-11-hotspot-amd64/bin/ /usr/lib/jvm/adoptopenjdk-11-hotspot-amd64/jre/bin && \ - ln -s /usr/lib/jvm/adoptopenjdk-11-hotspot-amd64/lib/ /usr/lib/jvm/adoptopenjdk-11-hotspot-amd64/jre/lib +RUN curl --user-agent "Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Firefox/81.0" --location ${K_JDK_URL}?$(date +%s) \ + --header 'Cache-Control: no-cache, no-store' \ + --header 'Pragma: no-cache' | tar xzv --directory /opt && \ + java -version ################################################################## # teamcity minimal agent diff --git a/linux/ecosystem/teamcity/agent/php8.2/Dockerfile b/linux/ecosystem/teamcity/agent/php8.2/Dockerfile new file mode 100644 index 000000000..f0af76496 --- /dev/null +++ b/linux/ecosystem/teamcity/agent/php8.2/Dockerfile @@ -0,0 +1,69 @@ +FROM epicmorg/php:php8.2 +LABEL maintainer="EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +ARG K_JDK_MAJOR_VERSION=jdk-17.0.11 +ARG K_JDK_VERSION=17.0.11 +ARG K_JDK_BUILD_VERSION=9 +ARG K_JDK_URL=https://github.com/adoptium/temurin17-binaries/releases/download/${K_JDK_MAJOR_VERSION}+${K_JDK_BUILD_VERSION}/OpenJDK17U-jdk_x64_linux_hotspot_${K_JDK_VERSION}_${K_JDK_BUILD_VERSION}.tar.gz + +ENV JAVA_HOME=/opt/${K_JDK_MAJOR_VERSION}+${K_JDK_BUILD_VERSION} +ENV PATH=$PATH:${JAVA_HOME}/bin + +################################################################## +# installing java17 +################################################################## +RUN curl --user-agent "Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Firefox/81.0" --location ${K_JDK_URL}?$(date +%s) \ + --header 'Cache-Control: no-cache, no-store' \ + --header 'Pragma: no-cache' | tar xzv --directory /opt && \ + java -version + +################################################################## +# teamcity minimal agent +################################################################## +LABEL dockerImage.teamcity.version="latest" \ + dockerImage.teamcity.buildNumber="latest" + +VOLUME /data/teamcity_agent/conf + +ENV CONFIG_FILE=/data/teamcity_agent/conf/buildAgent.properties +ENV LANG=C.UTF-8 +ENV GIT_SSH_VARIANT=ssh + +COPY run-agent.sh /run-agent.sh +RUN chmod +x /run-agent.sh && \ + sync + +COPY run-services.sh /run-services.sh +RUN chmod +x /run-services.sh && \ + sync + +ADD https://teamcity.jetbrains.com/update/buildAgent.zip /buildAgent.zip +RUN unzip -q /buildAgent.zip -d /opt/buildagent && \ + mv /opt/buildagent/conf /opt/buildagent/conf_dist && \ + rm -rfv /buildAgent.zip + +RUN useradd -m buildagent && \ + chmod +x /opt/buildagent/bin/*.sh && \ + chmod +x /run-agent.sh /run-services.sh && sync + +################################################################## +# php +################################################################## +RUN php -m && \ + php -v + + +################################################################## +# cleaninig up +################################################################## +RUN apt clean -y && \ + apt-get clean all && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb && \ + rm -rfv /tmp/* + +CMD ["/run-services.sh"] + +EXPOSE 9090 diff --git a/linux/ecosystem/teamcity/agent/php8.2/Makefile b/linux/ecosystem/teamcity/agent/php8.2/Makefile new file mode 100644 index 000000000..9ef622aa9 --- /dev/null +++ b/linux/ecosystem/teamcity/agent/php8.2/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel --progress plain + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/teamcity/agent/php8.2/README.md b/linux/ecosystem/teamcity/agent/php8.2/README.md new file mode 100644 index 000000000..b53fe01e8 --- /dev/null +++ b/linux/ecosystem/teamcity/agent/php8.2/README.md @@ -0,0 +1,93 @@ +## TeamCity Minimal Build Agent + +[](https://confluence.jetbrains.com/display/ALL/JetBrains+on+GitHub) + +This is an official [JetBrains TeamCity](https://www.jetbrains.com/teamcity/) minimal build agent image. + + More details about tags and components are [here](https://github.com/JetBrains/teamcity-docker-images/blob/master/generated/teamcity-minimal-agent.md). + +The [TeamCity build agent](https://www.jetbrains.com/help/teamcity/build-agent.html) connects to the TeamCity server and spawns the actual build processes. +You can use the ```jetbrains/teamcity-server``` image to run a TeamCity server. + +This minimal image adds just a TeamCity agent without any tools like VCS clients, etc. It is suitable for simple builds and can serve as a base for your custom images. For Java or .NET development we recommend using the default build agent image [jetbrains/teamcity-agent](https://hub.docker.com/r/jetbrains/teamcity-agent/). + +## How to Use This Image + +Pull the TeamCity minimal image from the Docker Hub Repository: + +``` +jetbrains/teamcity-minimal-agent +``` +  +and use the following command to start a container with TeamCity agent running inside +a Linux container: + +``` +docker run -it -e SERVER_URL="" \ + -v :/data/teamcity_agent/conf \ + jetbrains/teamcity-minimal-agent +``` +  +or a Windows container: +``` +docker run -it -e SERVER_URL="" + -v :C:/BuildAgent/conf + jetbrains/teamcity-minimal-agent +``` +where `` is the full URL for TeamCity server, accessible by the agent. Note that `localhost` will not generally not work as it will refer to the `localhost` inside the container. +`` is the host machine directory to serve as the TeamCity agent config directory. We recommend providing this binding in order to persist the agent configuration, e.g. authorization on the server. Note that you should map a different folder for every new agent you create. + +Since version 2020.1, TeamCity agent Docker images __run under a non-root user__. Refer to our [upgrade notes](https://www.jetbrains.com/help/teamcity/upgrade-notes.html#UpgradeNotes-AgentDockerimagesrunundernon-rootuser) for information on possible affected use cases. + +When you run the agent for the first time, you should authorize it via the TeamCity server UI: go to the **Unauthorized Agents** page in your browser. See [more details](https://www.jetbrains.com/help/teamcity/build-agent.html). + +All information about agent authorization is stored in agent's configuration folder. If you stop the container with the agent and then start a new one with the same config folder, the agent's name and authorization state will be preserved. + +TeamCity agent does not need manual upgrade: it will upgrade itself automatically on connecting to an upgraded server. + +### Agent Image Environment Variables + +- **SERVER_URL** - URL of the TeamCity server agent will connect to +- **AGENT_NAME** - (optional) Name of the agent in TeamCity UI, autogenerated if omitted +- **AGENT_TOKEN** - (optional) Agent authorization token, if unset, the agent should be [authorized](https://www.jetbrains.com/help/teamcity/build-agent.html#BuildAgent-BuildAgentStatus) via TeamCity UI. +- **OWN_ADDRESS** - (optional, linux only) IP address build agent binds to, autodetected +- **OWN_PORT** - (optional, linux only) Port build agent binds to, 9090 by default + +### Windows Containers Limitations + +The details on the known problems in Windows containers are available in the [TeamCity documentation](https://www.jetbrains.com/help/teamcity/known-issues.html#KnownIssues-WindowsDockerContainers). + +## Customization + +You can customize the image via the usual Docker procedure: + +1. Run the image +``` +docker run -it -e SERVER_URL="" \ + -v :/data/teamcity_agent/conf \ + --name="my-customized-agent" \ + jetbrains/teamcity-minimal-agent \ +``` +2. Enter the container +``` +docker exec -it my-customized-agent bash +``` + +3. Change whatever you need +4. Exit and [create a new image](https://docs.docker.com/engine/reference/commandline/commit/) from the container +``` +docker commit my-customized-agent +``` + +## License + +The image is available under the [TeamCity license](https://www.jetbrains.com/teamcity/buy/license.html). +TeamCity is free for perpetual use with the limitation of 100 build configurations (jobs) and 3 agents. [Licensing details](https://www.jetbrains.com/help/teamcity/licensing-policy.html). + +## Feedback + +Report issues of suggestions to the official TeamCity [issue tracker](https://youtrack.jetbrains.com/issues/TW). + +## Other TeamCity Images +* [TeamCity Server](https://hub.docker.com/r/jetbrains/teamcity-server/) +* [Build Agent](https://hub.docker.com/r/jetbrains/teamcity-agent/) diff --git a/linux/ecosystem/teamcity/agent/php8.2/docker-compose.yml b/linux/ecosystem/teamcity/agent/php8.2/docker-compose.yml new file mode 100644 index 000000000..5a67f4d52 --- /dev/null +++ b/linux/ecosystem/teamcity/agent/php8.2/docker-compose.yml @@ -0,0 +1,6 @@ +version: '3' +services: + app: + image: "epicmorg/teamcity-agent:php8.2" + build: + context: . diff --git a/linux/ecosystem/teamcity/agent/php8.2/run-agent.sh b/linux/ecosystem/teamcity/agent/php8.2/run-agent.sh new file mode 100755 index 000000000..a9ded1d14 --- /dev/null +++ b/linux/ecosystem/teamcity/agent/php8.2/run-agent.sh @@ -0,0 +1,90 @@ +#!/bin/bash + +check() { + if [[ $? != 0 ]]; then + echo "Error! Stopping the script." + exit 1 + fi +} + +configure() { + if [[ $# -gt 0 ]]; then + echo "run agent.sh configure $@" + ${AGENT_DIST}/bin/agent.sh configure "$@"; check + fi +} + +reconfigure() { + declare -a opts + [[ -n "${SERVER_URL}" ]] && opts[${#opts[@]}]='--server-url' && opts[${#opts[@]}]="$SERVER_URL" + [[ -n "${AGENT_TOKEN}" ]] && opts[${#opts[@]}]='--auth-token' && opts[${#opts[@]}]="$AGENT_TOKEN" + [[ -n "${AGENT_NAME}" ]] && opts[${#opts[@]}]='--name' && opts[${#opts[@]}]="$AGENT_NAME" + [[ -n "${OWN_ADDRESS}" ]] && opts[${#opts[@]}]='--ownAddress' && opts[${#opts[@]}]="$OWN_ADDRESS" + [[ -n "${OWN_PORT}" ]] && opts[${#opts[@]}]='--ownPort' && opts[${#opts[@]}]="$OWN_PORT" + if [[ 0 -ne "${#opts[@]}" ]]; then + # Using sed to strip double quotes produced by docker-compose + for i in $(seq 0 $(expr ${#opts[@]} - 1)); do + opts[$i]="$(echo "${opts[$i]}" | sed -e 's/""/"/g')" + done + configure "${opts[@]}" + echo "File buildAgent.properties was updated" + fi + for AGENT_OPT in ${AGENT_OPTS}; do + echo ${AGENT_OPT} >> ${CONFIG_DIR}/buildAgent.properties + done +} + +prepare_conf() { + echo "Will prepare agent config" ; + cp -p ${AGENT_DIST}/conf_dist/*.* ${CONFIG_DIR}/; check + cp -p ${CONFIG_DIR}/buildAgent.dist.properties ${CONFIG_DIR}/buildAgent.properties; check + reconfigure + echo "File buildAgent.properties was created and updated" ; +} + +AGENT_DIST=/opt/buildagent + +CONFIG_DIR=/data/teamcity_agent/conf + +LOG_DIR=/opt/buildagent/logs + + +rm -f ${LOG_DIR}/*.pid + +if [ -f ${CONFIG_DIR}/buildAgent.properties ] ; then + echo "File buildAgent.properties was found in ${CONFIG_DIR}" ; + reconfigure +else + echo "Will create new buildAgent.properties using distributive" ; + if [[ -n "${SERVER_URL}" ]]; then + echo "TeamCity URL is provided: ${SERVER_URL}" + else + echo "TeamCity URL is not provided, but is required." + exit 1 + fi + prepare_conf +fi + +if [ -z "$RUN_AS_BUILDAGENT" -o "$RUN_AS_BUILDAGENT" = "false" -o "$RUN_AS_BUILDAGENT" = "no" ]; then + ${AGENT_DIST}/bin/agent.sh start +else + echo "Make sure build agent directory ${AGENT_DIST} is owned by buildagent user" + chown -R buildagent:buildagent ${AGENT_DIST} + check; sync + + echo "Start build agent under buildagent user" + sudo -E -u buildagent HOME=/home/buildagent ${AGENT_DIST}/bin/agent.sh start +fi + + + +while [ ! -f ${LOG_DIR}/teamcity-agent.log ]; +do + echo -n "." + sleep 1 +done + +trap '${AGENT_DIST}/bin/agent.sh stop force; while ps -p $(cat $(ls -1 ${LOG_DIR}/*.pid)) &>/dev/null; do sleep 1; done; kill %%' SIGINT SIGTERM SIGHUP + +tail -qF ${LOG_DIR}/teamcity-agent.log & +wait diff --git a/linux/ecosystem/teamcity/agent/php8.2/run-services.sh b/linux/ecosystem/teamcity/agent/php8.2/run-services.sh new file mode 100755 index 000000000..a574dd68a --- /dev/null +++ b/linux/ecosystem/teamcity/agent/php8.2/run-services.sh @@ -0,0 +1,15 @@ +#!/bin/bash + +echo '/run-services.sh' + +for entry in /services/*.sh +do + if [[ -f "$entry" ]]; then + echo "$entry" + [[ ! -x "$entry" ]] && (chmod +x "$entry"; sync) + "$entry" + fi +done + +echo '/run-agent.sh' +exec '/run-agent.sh' diff --git a/linux/ecosystem/teamcity/agent/php8.2/sources.sid.list b/linux/ecosystem/teamcity/agent/php8.2/sources.sid.list new file mode 100644 index 000000000..d3d573cdc --- /dev/null +++ b/linux/ecosystem/teamcity/agent/php8.2/sources.sid.list @@ -0,0 +1,7 @@ +#main +deb http://ftp.ru.debian.org/debian/ sid main contrib non-free +deb-src http://ftp.ru.debian.org/debian/ sid main contrib non-free + +##multimedia +#deb http://ftp.ru.debian.org/debian-multimedia/ sid main non-free +#deb-src http://ftp.ru.debian.org/debian-multimedia/ sid main non-free diff --git a/linux/ecosystem/teamcity/agent/php8.3/Dockerfile b/linux/ecosystem/teamcity/agent/php8.3/Dockerfile new file mode 100644 index 000000000..283a8f9bf --- /dev/null +++ b/linux/ecosystem/teamcity/agent/php8.3/Dockerfile @@ -0,0 +1,69 @@ +FROM epicmorg/php:php8.3 +LABEL maintainer="EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +ARG K_JDK_MAJOR_VERSION=jdk-17.0.11 +ARG K_JDK_VERSION=17.0.11 +ARG K_JDK_BUILD_VERSION=9 +ARG K_JDK_URL=https://github.com/adoptium/temurin17-binaries/releases/download/${K_JDK_MAJOR_VERSION}+${K_JDK_BUILD_VERSION}/OpenJDK17U-jdk_x64_linux_hotspot_${K_JDK_VERSION}_${K_JDK_BUILD_VERSION}.tar.gz + +ENV JAVA_HOME=/opt/${K_JDK_MAJOR_VERSION}+${K_JDK_BUILD_VERSION} +ENV PATH=$PATH:${JAVA_HOME}/bin + +################################################################## +# installing java17 +################################################################## +RUN curl --user-agent "Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Firefox/81.0" --location ${K_JDK_URL}?$(date +%s) \ + --header 'Cache-Control: no-cache, no-store' \ + --header 'Pragma: no-cache' | tar xzv --directory /opt && \ + java -version + +################################################################## +# teamcity minimal agent +################################################################## +LABEL dockerImage.teamcity.version="latest" \ + dockerImage.teamcity.buildNumber="latest" + +VOLUME /data/teamcity_agent/conf + +ENV CONFIG_FILE=/data/teamcity_agent/conf/buildAgent.properties +ENV LANG=C.UTF-8 +ENV GIT_SSH_VARIANT=ssh + +COPY run-agent.sh /run-agent.sh +RUN chmod +x /run-agent.sh && \ + sync + +COPY run-services.sh /run-services.sh +RUN chmod +x /run-services.sh && \ + sync + +ADD https://teamcity.jetbrains.com/update/buildAgent.zip /buildAgent.zip +RUN unzip -q /buildAgent.zip -d /opt/buildagent && \ + mv /opt/buildagent/conf /opt/buildagent/conf_dist && \ + rm -rfv /buildAgent.zip + +RUN useradd -m buildagent && \ + chmod +x /opt/buildagent/bin/*.sh && \ + chmod +x /run-agent.sh /run-services.sh && sync + +################################################################## +# php +################################################################## +RUN php -m && \ + php -v + + +################################################################## +# cleaninig up +################################################################## +RUN apt clean -y && \ + apt-get clean all && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb && \ + rm -rfv /tmp/* + +CMD ["/run-services.sh"] + +EXPOSE 9090 diff --git a/linux/ecosystem/teamcity/agent/php8.3/Makefile b/linux/ecosystem/teamcity/agent/php8.3/Makefile new file mode 100644 index 000000000..9ef622aa9 --- /dev/null +++ b/linux/ecosystem/teamcity/agent/php8.3/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel --progress plain + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/teamcity/agent/php8.3/README.md b/linux/ecosystem/teamcity/agent/php8.3/README.md new file mode 100644 index 000000000..b53fe01e8 --- /dev/null +++ b/linux/ecosystem/teamcity/agent/php8.3/README.md @@ -0,0 +1,93 @@ +## TeamCity Minimal Build Agent + +[](https://confluence.jetbrains.com/display/ALL/JetBrains+on+GitHub) + +This is an official [JetBrains TeamCity](https://www.jetbrains.com/teamcity/) minimal build agent image. + + More details about tags and components are [here](https://github.com/JetBrains/teamcity-docker-images/blob/master/generated/teamcity-minimal-agent.md). + +The [TeamCity build agent](https://www.jetbrains.com/help/teamcity/build-agent.html) connects to the TeamCity server and spawns the actual build processes. +You can use the ```jetbrains/teamcity-server``` image to run a TeamCity server. + +This minimal image adds just a TeamCity agent without any tools like VCS clients, etc. It is suitable for simple builds and can serve as a base for your custom images. For Java or .NET development we recommend using the default build agent image [jetbrains/teamcity-agent](https://hub.docker.com/r/jetbrains/teamcity-agent/). + +## How to Use This Image + +Pull the TeamCity minimal image from the Docker Hub Repository: + +``` +jetbrains/teamcity-minimal-agent +``` +  +and use the following command to start a container with TeamCity agent running inside +a Linux container: + +``` +docker run -it -e SERVER_URL="" \ + -v :/data/teamcity_agent/conf \ + jetbrains/teamcity-minimal-agent +``` +  +or a Windows container: +``` +docker run -it -e SERVER_URL="" + -v :C:/BuildAgent/conf + jetbrains/teamcity-minimal-agent +``` +where `` is the full URL for TeamCity server, accessible by the agent. Note that `localhost` will not generally not work as it will refer to the `localhost` inside the container. +`` is the host machine directory to serve as the TeamCity agent config directory. We recommend providing this binding in order to persist the agent configuration, e.g. authorization on the server. Note that you should map a different folder for every new agent you create. + +Since version 2020.1, TeamCity agent Docker images __run under a non-root user__. Refer to our [upgrade notes](https://www.jetbrains.com/help/teamcity/upgrade-notes.html#UpgradeNotes-AgentDockerimagesrunundernon-rootuser) for information on possible affected use cases. + +When you run the agent for the first time, you should authorize it via the TeamCity server UI: go to the **Unauthorized Agents** page in your browser. See [more details](https://www.jetbrains.com/help/teamcity/build-agent.html). + +All information about agent authorization is stored in agent's configuration folder. If you stop the container with the agent and then start a new one with the same config folder, the agent's name and authorization state will be preserved. + +TeamCity agent does not need manual upgrade: it will upgrade itself automatically on connecting to an upgraded server. + +### Agent Image Environment Variables + +- **SERVER_URL** - URL of the TeamCity server agent will connect to +- **AGENT_NAME** - (optional) Name of the agent in TeamCity UI, autogenerated if omitted +- **AGENT_TOKEN** - (optional) Agent authorization token, if unset, the agent should be [authorized](https://www.jetbrains.com/help/teamcity/build-agent.html#BuildAgent-BuildAgentStatus) via TeamCity UI. +- **OWN_ADDRESS** - (optional, linux only) IP address build agent binds to, autodetected +- **OWN_PORT** - (optional, linux only) Port build agent binds to, 9090 by default + +### Windows Containers Limitations + +The details on the known problems in Windows containers are available in the [TeamCity documentation](https://www.jetbrains.com/help/teamcity/known-issues.html#KnownIssues-WindowsDockerContainers). + +## Customization + +You can customize the image via the usual Docker procedure: + +1. Run the image +``` +docker run -it -e SERVER_URL="" \ + -v :/data/teamcity_agent/conf \ + --name="my-customized-agent" \ + jetbrains/teamcity-minimal-agent \ +``` +2. Enter the container +``` +docker exec -it my-customized-agent bash +``` + +3. Change whatever you need +4. Exit and [create a new image](https://docs.docker.com/engine/reference/commandline/commit/) from the container +``` +docker commit my-customized-agent +``` + +## License + +The image is available under the [TeamCity license](https://www.jetbrains.com/teamcity/buy/license.html). +TeamCity is free for perpetual use with the limitation of 100 build configurations (jobs) and 3 agents. [Licensing details](https://www.jetbrains.com/help/teamcity/licensing-policy.html). + +## Feedback + +Report issues of suggestions to the official TeamCity [issue tracker](https://youtrack.jetbrains.com/issues/TW). + +## Other TeamCity Images +* [TeamCity Server](https://hub.docker.com/r/jetbrains/teamcity-server/) +* [Build Agent](https://hub.docker.com/r/jetbrains/teamcity-agent/) diff --git a/linux/ecosystem/teamcity/agent/php8.3/docker-compose.yml b/linux/ecosystem/teamcity/agent/php8.3/docker-compose.yml new file mode 100644 index 000000000..bd82ed325 --- /dev/null +++ b/linux/ecosystem/teamcity/agent/php8.3/docker-compose.yml @@ -0,0 +1,6 @@ +version: '3' +services: + app: + image: "epicmorg/teamcity-agent:php8.3" + build: + context: . diff --git a/linux/ecosystem/teamcity/agent/php8.3/run-agent.sh b/linux/ecosystem/teamcity/agent/php8.3/run-agent.sh new file mode 100755 index 000000000..a9ded1d14 --- /dev/null +++ b/linux/ecosystem/teamcity/agent/php8.3/run-agent.sh @@ -0,0 +1,90 @@ +#!/bin/bash + +check() { + if [[ $? != 0 ]]; then + echo "Error! Stopping the script." + exit 1 + fi +} + +configure() { + if [[ $# -gt 0 ]]; then + echo "run agent.sh configure $@" + ${AGENT_DIST}/bin/agent.sh configure "$@"; check + fi +} + +reconfigure() { + declare -a opts + [[ -n "${SERVER_URL}" ]] && opts[${#opts[@]}]='--server-url' && opts[${#opts[@]}]="$SERVER_URL" + [[ -n "${AGENT_TOKEN}" ]] && opts[${#opts[@]}]='--auth-token' && opts[${#opts[@]}]="$AGENT_TOKEN" + [[ -n "${AGENT_NAME}" ]] && opts[${#opts[@]}]='--name' && opts[${#opts[@]}]="$AGENT_NAME" + [[ -n "${OWN_ADDRESS}" ]] && opts[${#opts[@]}]='--ownAddress' && opts[${#opts[@]}]="$OWN_ADDRESS" + [[ -n "${OWN_PORT}" ]] && opts[${#opts[@]}]='--ownPort' && opts[${#opts[@]}]="$OWN_PORT" + if [[ 0 -ne "${#opts[@]}" ]]; then + # Using sed to strip double quotes produced by docker-compose + for i in $(seq 0 $(expr ${#opts[@]} - 1)); do + opts[$i]="$(echo "${opts[$i]}" | sed -e 's/""/"/g')" + done + configure "${opts[@]}" + echo "File buildAgent.properties was updated" + fi + for AGENT_OPT in ${AGENT_OPTS}; do + echo ${AGENT_OPT} >> ${CONFIG_DIR}/buildAgent.properties + done +} + +prepare_conf() { + echo "Will prepare agent config" ; + cp -p ${AGENT_DIST}/conf_dist/*.* ${CONFIG_DIR}/; check + cp -p ${CONFIG_DIR}/buildAgent.dist.properties ${CONFIG_DIR}/buildAgent.properties; check + reconfigure + echo "File buildAgent.properties was created and updated" ; +} + +AGENT_DIST=/opt/buildagent + +CONFIG_DIR=/data/teamcity_agent/conf + +LOG_DIR=/opt/buildagent/logs + + +rm -f ${LOG_DIR}/*.pid + +if [ -f ${CONFIG_DIR}/buildAgent.properties ] ; then + echo "File buildAgent.properties was found in ${CONFIG_DIR}" ; + reconfigure +else + echo "Will create new buildAgent.properties using distributive" ; + if [[ -n "${SERVER_URL}" ]]; then + echo "TeamCity URL is provided: ${SERVER_URL}" + else + echo "TeamCity URL is not provided, but is required." + exit 1 + fi + prepare_conf +fi + +if [ -z "$RUN_AS_BUILDAGENT" -o "$RUN_AS_BUILDAGENT" = "false" -o "$RUN_AS_BUILDAGENT" = "no" ]; then + ${AGENT_DIST}/bin/agent.sh start +else + echo "Make sure build agent directory ${AGENT_DIST} is owned by buildagent user" + chown -R buildagent:buildagent ${AGENT_DIST} + check; sync + + echo "Start build agent under buildagent user" + sudo -E -u buildagent HOME=/home/buildagent ${AGENT_DIST}/bin/agent.sh start +fi + + + +while [ ! -f ${LOG_DIR}/teamcity-agent.log ]; +do + echo -n "." + sleep 1 +done + +trap '${AGENT_DIST}/bin/agent.sh stop force; while ps -p $(cat $(ls -1 ${LOG_DIR}/*.pid)) &>/dev/null; do sleep 1; done; kill %%' SIGINT SIGTERM SIGHUP + +tail -qF ${LOG_DIR}/teamcity-agent.log & +wait diff --git a/linux/ecosystem/teamcity/agent/php8.3/run-services.sh b/linux/ecosystem/teamcity/agent/php8.3/run-services.sh new file mode 100755 index 000000000..a574dd68a --- /dev/null +++ b/linux/ecosystem/teamcity/agent/php8.3/run-services.sh @@ -0,0 +1,15 @@ +#!/bin/bash + +echo '/run-services.sh' + +for entry in /services/*.sh +do + if [[ -f "$entry" ]]; then + echo "$entry" + [[ ! -x "$entry" ]] && (chmod +x "$entry"; sync) + "$entry" + fi +done + +echo '/run-agent.sh' +exec '/run-agent.sh' diff --git a/linux/ecosystem/teamcity/agent/php8.3/sources.sid.list b/linux/ecosystem/teamcity/agent/php8.3/sources.sid.list new file mode 100644 index 000000000..d3d573cdc --- /dev/null +++ b/linux/ecosystem/teamcity/agent/php8.3/sources.sid.list @@ -0,0 +1,7 @@ +#main +deb http://ftp.ru.debian.org/debian/ sid main contrib non-free +deb-src http://ftp.ru.debian.org/debian/ sid main contrib non-free + +##multimedia +#deb http://ftp.ru.debian.org/debian-multimedia/ sid main non-free +#deb-src http://ftp.ru.debian.org/debian-multimedia/ sid main non-free