diff --git a/.github/workflows/ci-pipeline.yml b/.github/workflows/ci-pipeline.yml new file mode 100644 index 0000000..9a0ab92 --- /dev/null +++ b/.github/workflows/ci-pipeline.yml @@ -0,0 +1,26 @@ +name: CI + +on: + push: + +jobs: + build: + runs-on: ubuntu-latest + + services: + docker: + image: docker:20.10.12-dind + options: --privileged + + steps: + - name: Checkout repository + uses: actions/checkout@v4 + + - name: Set up Go + uses: actions/setup-go@v5 + with: + go-version: 1.21.6 + + - name: Build + run: | + go run builder/main.go diff --git a/.idea/.gitignore b/.idea/.gitignore new file mode 100644 index 0000000..13566b8 --- /dev/null +++ b/.idea/.gitignore @@ -0,0 +1,8 @@ +# Default ignored files +/shelf/ +/workspace.xml +# Editor-based HTTP Client requests +/httpRequests/ +# Datasource local storage ignored files +/dataSources/ +/dataSources.local.xml diff --git a/.idea/codeStyles/codeStyleConfig.xml b/.idea/codeStyles/codeStyleConfig.xml new file mode 100644 index 0000000..a55e7a1 --- /dev/null +++ b/.idea/codeStyles/codeStyleConfig.xml @@ -0,0 +1,5 @@ + + + + \ No newline at end of file diff --git a/.idea/modules.xml b/.idea/modules.xml new file mode 100644 index 0000000..8885190 --- /dev/null +++ b/.idea/modules.xml @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/.idea/torizon-containers.iml b/.idea/torizon-containers.iml new file mode 100644 index 0000000..5e764c4 --- /dev/null +++ b/.idea/torizon-containers.iml @@ -0,0 +1,9 @@ + + + + + + + + + \ No newline at end of file diff --git a/.idea/vcs.xml b/.idea/vcs.xml new file mode 100644 index 0000000..35eb1dd --- /dev/null +++ b/.idea/vcs.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/.vscode/launch.json b/.vscode/launch.json new file mode 100644 index 0000000..81d924e --- /dev/null +++ b/.vscode/launch.json @@ -0,0 +1,16 @@ +{ + // Use IntelliSense to learn about possible attributes. + // Hover to view descriptions of existing attributes. + // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387 + "version": "0.2.0", + "configurations": [ + + { + "name": "Launch Package", + "type": "go", + "request": "launch", + "mode": "auto", + "program": "${fileDirname}" + } + ] +} \ No newline at end of file diff --git a/builder/go.mod b/builder/go.mod new file mode 100644 index 0000000..76a998b --- /dev/null +++ b/builder/go.mod @@ -0,0 +1,40 @@ +module builder + +go 1.21.6 + +require github.com/docker/docker v25.0.2+incompatible + +require ( + github.com/Microsoft/go-winio v0.6.1 // indirect + github.com/containerd/containerd v1.7.13 // indirect + github.com/containerd/log v0.1.0 // indirect + github.com/distribution/reference v0.5.0 // indirect + github.com/docker/go-connections v0.5.0 // indirect + github.com/docker/go-units v0.5.0 // indirect + github.com/dominikbraun/graph v0.23.0 // indirect + github.com/felixge/httpsnoop v1.0.4 // indirect + github.com/go-logr/logr v1.4.1 // indirect + github.com/go-logr/stdr v1.2.2 // indirect + github.com/gogo/protobuf v1.3.2 // indirect + github.com/klauspost/compress v1.17.5 // indirect + github.com/moby/patternmatcher v0.6.0 // indirect + github.com/moby/sys/sequential v0.5.0 // indirect + github.com/moby/sys/user v0.1.0 // indirect + github.com/moby/term v0.5.0 // indirect + github.com/morikuni/aec v1.0.0 // indirect + github.com/opencontainers/go-digest v1.0.0 // indirect + github.com/opencontainers/image-spec v1.1.0-rc2.0.20221005185240-3a7f492d3f1b // indirect + github.com/pkg/errors v0.9.1 // indirect + github.com/sirupsen/logrus v1.9.3 // indirect + go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.47.0 // indirect + go.opentelemetry.io/otel v1.22.0 // indirect + go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.22.0 // indirect + go.opentelemetry.io/otel/metric v1.22.0 // indirect + go.opentelemetry.io/otel/sdk v1.22.0 // indirect + go.opentelemetry.io/otel/trace v1.22.0 // indirect + golang.org/x/mod v0.11.0 // indirect + golang.org/x/sys v0.16.0 // indirect + golang.org/x/time v0.5.0 // indirect + golang.org/x/tools v0.10.0 // indirect + gotest.tools/v3 v3.5.1 // indirect +) diff --git a/builder/go.sum b/builder/go.sum new file mode 100644 index 0000000..7e1d056 --- /dev/null +++ b/builder/go.sum @@ -0,0 +1,143 @@ +github.com/AdaLogics/go-fuzz-headers v0.0.0-20230811130428-ced1acdcaa24 h1:bvDV9vkmnHYOMsOr4WLk+Vo07yKIzd94sVoIqshQ4bU= +github.com/AdaLogics/go-fuzz-headers v0.0.0-20230811130428-ced1acdcaa24/go.mod h1:8o94RPi1/7XTJvwPpRSzSUedZrtlirdB3r9Z20bi2f8= +github.com/Azure/go-ansiterm v0.0.0-20210617225240-d185dfc1b5a1 h1:UQHMgLO+TxOElx5B5HZ4hJQsoJ/PvUvKRhJHDQXO8P8= +github.com/Azure/go-ansiterm v0.0.0-20210617225240-d185dfc1b5a1/go.mod h1:xomTg63KZ2rFqZQzSB4Vz2SUXa1BpHTVz9L5PTmPC4E= +github.com/Microsoft/go-winio v0.6.1 h1:9/kr64B9VUZrLm5YYwbGtUJnMgqWVOdUAXu6Migciow= +github.com/Microsoft/go-winio v0.6.1/go.mod h1:LRdKpFKfdobln8UmuiYcKPot9D2v6svN5+sAH+4kjUM= +github.com/Microsoft/hcsshim v0.11.4 h1:68vKo2VN8DE9AdN4tnkWnmdhqdbpUFM8OF3Airm7fz8= +github.com/Microsoft/hcsshim v0.11.4/go.mod h1:smjE4dvqPX9Zldna+t5FG3rnoHhaB7QYxPRqGcpAD9w= +github.com/cenkalti/backoff/v4 v4.2.1 h1:y4OZtCnogmCPw98Zjyt5a6+QwPLGkiQsYW5oUqylYbM= +github.com/cenkalti/backoff/v4 v4.2.1/go.mod h1:Y3VNntkOUPxTVeUxJ/G5vcM//AlwfmyYozVcomhLiZE= +github.com/containerd/containerd v1.7.13 h1:wPYKIeGMN8vaggSKuV1X0wZulpMz4CrgEsZdaCyB6Is= +github.com/containerd/containerd v1.7.13/go.mod h1:zT3up6yTRfEUa6+GsITYIJNgSVL9NQ4x4h1RPzk0Wu4= +github.com/containerd/log v0.1.0 h1:TCJt7ioM2cr/tfR8GPbGf9/VRAX8D2B4PjzCpfX540I= +github.com/containerd/log v0.1.0/go.mod h1:VRRf09a7mHDIRezVKTRCrOq78v577GXq3bSa3EhrzVo= +github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= +github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/distribution/reference v0.5.0 h1:/FUIFXtfc/x2gpa5/VGfiGLuOIdYa1t65IKK2OFGvA0= +github.com/distribution/reference v0.5.0/go.mod h1:BbU0aIcezP1/5jX/8MP0YiH4SdvB5Y4f/wlDRiLyi3E= +github.com/docker/docker v25.0.2+incompatible h1:/OaKeauroa10K4Nqavw4zlhcDq/WBcPMc5DbjOGgozY= +github.com/docker/docker v25.0.2+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= +github.com/docker/go-connections v0.5.0 h1:USnMq7hx7gwdVZq1L49hLXaFtUdTADjXGp+uj1Br63c= +github.com/docker/go-connections v0.5.0/go.mod h1:ov60Kzw0kKElRwhNs9UlUHAE/F9Fe6GLaXnqyDdmEXc= +github.com/docker/go-units v0.5.0 h1:69rxXcBk27SvSaaxTtLh/8llcHD8vYHT7WSdRZ/jvr4= +github.com/docker/go-units v0.5.0/go.mod h1:fgPhTUdO+D/Jk86RDLlptpiXQzgHJF7gydDDbaIK4Dk= +github.com/dominikbraun/graph v0.23.0 h1:TdZB4pPqCLFxYhdyMFb1TBdFxp8XLcJfTTBQucVPgCo= +github.com/dominikbraun/graph v0.23.0/go.mod h1:yOjYyogZLY1LSG9E33JWZJiq5k83Qy2C6POAuiViluc= +github.com/felixge/httpsnoop v1.0.4 h1:NFTV2Zj1bL4mc9sqWACXbQFVBBg2W3GPvqp8/ESS2Wg= +github.com/felixge/httpsnoop v1.0.4/go.mod h1:m8KPJKqk1gH5J9DgRY2ASl2lWCfGKXixSwevea8zH2U= +github.com/go-logr/logr v1.2.2/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A= +github.com/go-logr/logr v1.4.1 h1:pKouT5E8xu9zeFC39JXRDukb6JFQPXM5p5I91188VAQ= +github.com/go-logr/logr v1.4.1/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY= +github.com/go-logr/stdr v1.2.2 h1:hSWxHoqTgW2S2qGc0LTAI563KZ5YKYRhT3MFKZMbjag= +github.com/go-logr/stdr v1.2.2/go.mod h1:mMo/vtBO5dYbehREoey6XUKy/eSumjCCveDpRre4VKE= +github.com/gogo/protobuf v1.3.2 h1:Ov1cvc58UF3b5XjBnZv7+opcTcQFZebYjWzi34vdm4Q= +github.com/gogo/protobuf v1.3.2/go.mod h1:P1XiOD3dCwIKUDQYPy72D8LYyHL2YPYrpS2s69NZV8Q= +github.com/golang/protobuf v1.5.3 h1:KhyjKVUg7Usr/dYsdSqoFveMYd5ko72D+zANwlG1mmg= +github.com/golang/protobuf v1.5.3/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY= +github.com/google/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI= +github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= +github.com/grpc-ecosystem/grpc-gateway/v2 v2.16.0 h1:YBftPWNWd4WwGqtY2yeZL2ef8rHAxPBD8KFhJpmcqms= +github.com/grpc-ecosystem/grpc-gateway/v2 v2.16.0/go.mod h1:YN5jB8ie0yfIUg6VvR9Kz84aCaG7AsGZnLjhHbUqwPg= +github.com/kisielk/errcheck v1.5.0/go.mod h1:pFxgyoBC7bSaBwPgfKdkLd5X25qrDl4LWUI2bnpBCr8= +github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= +github.com/klauspost/compress v1.17.5 h1:d4vBd+7CHydUqpFBgUEKkSdtSugf9YFmSkvUYPquI5E= +github.com/klauspost/compress v1.17.5/go.mod h1:/dCuZOvVtNoHsyb+cuJD3itjs3NbnF6KH9zAO4BDxPM= +github.com/moby/patternmatcher v0.6.0 h1:GmP9lR19aU5GqSSFko+5pRqHi+Ohk1O69aFiKkVGiPk= +github.com/moby/patternmatcher v0.6.0/go.mod h1:hDPoyOpDY7OrrMDLaYoY3hf52gNCR/YOUYxkhApJIxc= +github.com/moby/sys/sequential v0.5.0 h1:OPvI35Lzn9K04PBbCLW0g4LcFAJgHsvXsRyewg5lXtc= +github.com/moby/sys/sequential v0.5.0/go.mod h1:tH2cOOs5V9MlPiXcQzRC+eEyab644PWKGRYaaV5ZZlo= +github.com/moby/sys/user v0.1.0 h1:WmZ93f5Ux6het5iituh9x2zAG7NFY9Aqi49jjE1PaQg= +github.com/moby/sys/user v0.1.0/go.mod h1:fKJhFOnsCN6xZ5gSfbM6zaHGgDJMrqt9/reuj4T7MmU= +github.com/moby/term v0.5.0 h1:xt8Q1nalod/v7BqbG21f8mQPqH+xAaC9C3N3wfWbVP0= +github.com/moby/term v0.5.0/go.mod h1:8FzsFHVUBGZdbDsJw/ot+X+d5HLUbvklYLJ9uGfcI3Y= +github.com/morikuni/aec v1.0.0 h1:nP9CBfwrvYnBRgY6qfDQkygYDmYwOilePFkwzv4dU8A= +github.com/morikuni/aec v1.0.0/go.mod h1:BbKIizmSmc5MMPqRYbxO4ZU0S0+P200+tUnFx7PXmsc= +github.com/opencontainers/go-digest v1.0.0 h1:apOUWs51W5PlhuyGyz9FCeeBIOUDA/6nW8Oi/yOhh5U= +github.com/opencontainers/go-digest v1.0.0/go.mod h1:0JzlMkj0TRzQZfJkVvzbP0HBR3IKzErnv2BNG4W4MAM= +github.com/opencontainers/image-spec v1.1.0-rc2.0.20221005185240-3a7f492d3f1b h1:YWuSjZCQAPM8UUBLkYUk1e+rZcvWHJmFb6i6rM44Xs8= +github.com/opencontainers/image-spec v1.1.0-rc2.0.20221005185240-3a7f492d3f1b/go.mod h1:3OVijpioIKYWTqjiG0zfF6wvoJ4fAXGbjdZuI2NgsRQ= +github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4= +github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= +github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= +github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= +github.com/sirupsen/logrus v1.9.3 h1:dueUQJ1C2q9oE3F7wvmSGAaVtTmUizReu6fjN8uqzbQ= +github.com/sirupsen/logrus v1.9.3/go.mod h1:naHLuLoDiP4jHNo9R0sCBMtWGeIprob74mVsIT4qYEQ= +github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= +github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= +github.com/stretchr/testify v1.8.4 h1:CcVxjf3Q8PM0mHUKJCdn+eZZtm5yQwehR5yeSVQQcUk= +github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo= +github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= +github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= +go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.47.0 h1:sv9kVfal0MK0wBMCOGr+HeJm9v803BkJxGrk2au7j08= +go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.47.0/go.mod h1:SK2UL73Zy1quvRPonmOmRDiWk1KBV3LyIeeIxcEApWw= +go.opentelemetry.io/otel v1.22.0 h1:xS7Ku+7yTFvDfDraDIJVpw7XPyuHlB9MCiqqX5mcJ6Y= +go.opentelemetry.io/otel v1.22.0/go.mod h1:eoV4iAi3Ea8LkAEI9+GFT44O6T/D0GWAVFyZVCC6pMI= +go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.22.0 h1:9M3+rhx7kZCIQQhQRYaZCdNu1V73tm4TvXs2ntl98C4= +go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.22.0/go.mod h1:noq80iT8rrHP1SfybmPiRGc9dc5M8RPmGvtwo7Oo7tc= +go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.22.0 h1:FyjCyI9jVEfqhUh2MoSkmolPjfh5fp2hnV0b0irxH4Q= +go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.22.0/go.mod h1:hYwym2nDEeZfG/motx0p7L7J1N1vyzIThemQsb4g2qY= +go.opentelemetry.io/otel/metric v1.22.0 h1:lypMQnGyJYeuYPhOM/bgjbFM6WE44W1/T45er4d8Hhg= +go.opentelemetry.io/otel/metric v1.22.0/go.mod h1:evJGjVpZv0mQ5QBRJoBF64yMuOf4xCWdXjK8pzFvliY= +go.opentelemetry.io/otel/sdk v1.22.0 h1:6coWHw9xw7EfClIC/+O31R8IY3/+EiRFHevmHafB2Gw= +go.opentelemetry.io/otel/sdk v1.22.0/go.mod h1:iu7luyVGYovrRpe2fmj3CVKouQNdTOkxtLzPvPz1DOc= +go.opentelemetry.io/otel/trace v1.22.0 h1:Hg6pPujv0XG9QaVbGOBVHunyuLcCC3jN7WEhPx83XD0= +go.opentelemetry.io/otel/trace v1.22.0/go.mod h1:RbbHXVqKES9QhzZq/fE5UnOSILqRt40a21sPw2He1xo= +go.opentelemetry.io/proto/otlp v1.0.0 h1:T0TX0tmXU8a3CbNXzEKGeU5mIVOdf0oykP+u2lIVU/I= +go.opentelemetry.io/proto/otlp v1.0.0/go.mod h1:Sy6pihPLfYHkr3NkUbEhGHFhINUSI/v80hjKIs5JXpM= +golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= +golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= +golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= +golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= +golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= +golang.org/x/mod v0.11.0 h1:bUO06HqtnRcc/7l71XBe4WcqTZ+3AH1J59zWDDwLKgU= +golang.org/x/mod v0.11.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= +golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= +golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= +golang.org/x/net v0.17.0 h1:pVaXccu2ozPjCXewfr1S7xza/zcXTity9cCdXQYSjIM= +golang.org/x/net v0.17.0/go.mod h1:NxSsAGuq816PNPmqtQdLE42eU2Fs7NoRIZrHJAlaCOE= +golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.3.0 h1:ftCYgMx6zT/asHUrPw8BLLscYtGznsLAnjq5RH9P66E= +golang.org/x/sync v0.3.0/go.mod h1:FU7BRWz2tNW+3quACPkgCx/L+uEAv1htQ0V83Z9Rj+Y= +golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20220715151400-c0bba94af5f8/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.16.0 h1:xWw16ngr6ZMtmxDyKyIgsE93KNKz5HKmMa3b8ALHidU= +golang.org/x/sys v0.16.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= +golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= +golang.org/x/text v0.13.0 h1:ablQoSUd0tRdKxZewP80B+BaqeKJuVhuRxj/dkrun3k= +golang.org/x/text v0.13.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE= +golang.org/x/time v0.5.0 h1:o7cqy6amK/52YcAKIPlM3a+Fpj35zvRj2TP+e1xFSfk= +golang.org/x/time v0.5.0/go.mod h1:3BpzKBy/shNhVucY/MWOyx10tF3SFh9QdLuxbVysPQM= +golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= +golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.0.0-20200619180055-7c47624df98f/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= +golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= +golang.org/x/tools v0.10.0 h1:tvDr/iQoUqNdohiYm0LmmKcBk+q86lb9EprIUFhHHGg= +golang.org/x/tools v0.10.0/go.mod h1:UJwyiVBsOA2uwvK/e5OY3GTpDUJriEd+/YlqAwLPmyM= +golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= +golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= +golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= +golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= +google.golang.org/genproto v0.0.0-20230711160842-782d3b101e98 h1:Z0hjGZePRE0ZBWotvtrwxFNrNE9CUAGtplaDK5NNI/g= +google.golang.org/genproto/googleapis/api v0.0.0-20231002182017-d307bd883b97 h1:W18sezcAYs+3tDZX4F80yctqa12jcP1PUS2gQu1zTPU= +google.golang.org/genproto/googleapis/api v0.0.0-20231002182017-d307bd883b97/go.mod h1:iargEX0SFPm3xcfMI0d1domjg0ZF4Aa0p2awqyxhvF0= +google.golang.org/genproto/googleapis/rpc v0.0.0-20231002182017-d307bd883b97 h1:6GQBEOdGkX6MMTLT9V+TjtIRZCw9VPD5Z+yHY9wMgS0= +google.golang.org/genproto/googleapis/rpc v0.0.0-20231002182017-d307bd883b97/go.mod h1:v7nGkzlmW8P3n/bKmWBn2WpBjpOEx8Q6gMueudAmKfY= +google.golang.org/grpc v1.60.1 h1:26+wFr+cNqSGFcOXcabYC0lUVJVRa2Sb2ortSK7VrEU= +google.golang.org/grpc v1.60.1/go.mod h1:OlCHIeLYqSSsLi6i49B5QGdzaMZK9+M7LXN2FKz4eGM= +google.golang.org/protobuf v1.32.0 h1:pPC6BG5ex8PDFnkbrGU3EixyhKcQ2aDuBS36lqK/C7I= +google.golang.org/protobuf v1.32.0/go.mod h1:c6P6GXX6sHbq/GpV6MGZEdwhWPcYBgnhAHhKbcUYpos= +gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= +gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= +gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= +gotest.tools/v3 v3.5.1 h1:EENdUnS3pdur5nybKYIh2Vfgc8IUNBjxDPSjtiJcOzU= +gotest.tools/v3 v3.5.1/go.mod h1:isy3WKz7GK6uNw/sbHzfKBLvlvXwUyV06n6brMxxopU= diff --git a/builder/main.go b/builder/main.go new file mode 100644 index 0000000..667bc27 --- /dev/null +++ b/builder/main.go @@ -0,0 +1,341 @@ +package main + +import ( + "bufio" + "context" + "errors" + "github.com/docker/docker/api/types" + "github.com/docker/docker/client" + "github.com/docker/docker/pkg/archive" + "io" + "io/fs" + "log" + "os" + "path/filepath" + "strings" +) + +func main() { + log.SetFlags(log.LstdFlags | log.Lmicroseconds) + // get every Dockerfile file path + relativeContextPaths, err := WalkDirAndReturnPathsThatMatch("../debian-docker-images/upstream", "Dockerfile") + var relativeDockerfilePaths []string + var relativeBuildContexts []string + + for _, path := range relativeContextPaths { + relativeDockerfilePaths = append(relativeDockerfilePaths, path+"/Dockerfile") + relativeBuildContexts = append(relativeBuildContexts, path) + } + if err != nil { + log.Println("error: error while walking directory") + } + + // for every Dockerfile found, parse it to get the labels containing the build metadata + var labels []map[string]string + log.Println("Parsed Dockerfiles:") + for _, path := range relativeBuildContexts { + l, err := parseDockerfileLabels(path + "/Dockerfile") + if err != nil { + log.Println("Error:", err) + log.Println("Aborting") + os.Exit(1) + } + log.Println(path) + l["path"] = path + labels = append(labels, l) + } + + //log.Println(labels) + + dependencyMap := make(map[string][]string) + + log.Println("Generating a dependency map...") + log.Println("Dependency Map:") + for _, label := range labels { + child := label["org.toradex.image.namespace"] + "/" + label["org.toradex.image.name"] + parent := label["org.toradex.image.base.namespace"] + "/" + label["org.toradex.image.base.name"] + + // Check if the child already exists in the dependency map for the parent + exists := false + for _, existingChild := range dependencyMap[parent] { + if existingChild == child { + exists = true + break + } + } + + if !exists { + dependencyMap[parent] = append(dependencyMap[parent], child) + } + } + + startKey := "library/debian" + + buildWorld := os.Getenv("BUILD_WORLD") + if buildWorld == "1" { + var buildOrder []string + + traverseMap(dependencyMap, startKey, make(map[string]bool), &buildOrder) + log.Println("World Build Order is:") + log.Print(buildOrder) + + log.Println("Building...") + tasks := matchOrderWithLabels(labels, buildOrder) + log.Println(tasks) + for _, task := range tasks { + log.Printf("Building %s\n", task["IMAGE"]) + + // can't pass the map directly, so a copy is needed + baseImageRegistry := task["BASE_IMAGE_REGISTRY"] + baseImageNamespace := task["BASE_IMAGE_NAMESPACE"] + baseImageName := task["BASE_IMAGE_NAME"] + baseImageTag := task["BASE_IMAGE_TAG"] + contextPath := task["DOCKERFILE_PATH"] + + buildArgs := map[string]*string{ + "BASE_IMAGE_REGISTRY": &baseImageRegistry, + "BASE_IMAGE_NAMESPACE": &baseImageNamespace, + "BASE_IMAGE_NAME": &baseImageName, + "BASE_IMAGE_TAG": &baseImageTag, + } + + err = buildImage(contextPath, buildArgs) + if err != nil { + log.Printf("Error building image: %v\n", err) + os.Exit(1) + } + } + } +} + +func traverseMap(dependencyMap map[string][]string, currentKey string, visited map[string]bool, resultSlice *[]string) { + if visited[currentKey] { + return + } + + visited[currentKey] = true + *resultSlice = append(*resultSlice, currentKey) + + for _, child := range dependencyMap[currentKey] { + traverseMap(dependencyMap, child, visited, resultSlice) + } +} + +func matchOrderWithLabels(labels []map[string]string, buildOrder []string) []map[string]string { + result := make([]map[string]string, 0) + + for _, member := range buildOrder { + for _, label := range labels { + ImageNamespace := label["org.toradex.image.namespace"] + ImageName := label["org.toradex.image.name"] + ImageTag := label["org.toradex.image.tag.major"] + + BaseImageNamespace := label["org.toradex.image.base.namespace"] + BaseImageName := label["org.toradex.image.base.name"] + + var BaseImageTag string + if BaseImageNamespace == "library" && BaseImageName == "debian" { + // debian follows the MAJOR.MINOR-VARIANT scheme instead of full semantic versioning, and will be hosted in the main "library" namespace + BaseImageTag = label["org.toradex.image.base.tag.major"] + "." + label["org.toradex.image.base.tag.minor"] + "-" + label["org.toradex.image.base.variant"] + } else if BaseImageNamespace == "torizon" && BaseImageName == "debian" { + // the torizon debian image follows a MAJOR-VARIANT + BaseImageTag = label["org.toradex.image.base.tag.major"] + "-" + label["org.toradex.image.base.variant"] + } else { + // for all other images the major suffices + BaseImageTag = label["org.toradex.image.base.tag.major"] + } + + if ImageNamespace+"/"+ImageName == member { + result = append(result, map[string]string{ + "IMAGE": member, + "IMAGE_REGISTRY": label["org.toradex.image.registry"], + "IMAGE_NAMESPACE": ImageNamespace, + "IMAGE_NAME": ImageName, + "IMAGE_TAG": ImageTag, + "IMAGE_ARCH": label["org.toradex.image.arch"], + "BASE_IMAGE_REGISTRY": label["org.toradex.image.base.registry"], + "BASE_IMAGE_NAMESPACE": BaseImageNamespace, + "BASE_IMAGE_NAME": BaseImageName, + "BASE_IMAGE_TAG": BaseImageTag, + "DOCKERFILE_PATH": label["path"], + }) + // Break the inner loop once a match is found to avoid unnecessary iterations + break + } + } + } + return result +} + +func matchOrderWithLabels1(labels []map[string]string, buildOrder []string) map[string]map[string]string { + result := make(map[string]map[string]string) + + for _, member := range buildOrder { + for _, label := range labels { + ImageNamespace := label["org.toradex.image.namespace"] + ImageName := label["org.toradex.image.name"] + ImageTag := label["org.toradex.image.tag.major"] + + BaseImageNamespace := label["org.toradex.image.base.namespace"] + BaseImageName := label["org.toradex.image.base.name"] + + var BaseImageTag string + if BaseImageNamespace == "library" && BaseImageName == "debian" { + // debian follows the MAJOR.MINOR-VARIANT scheme instead of full semantic versioning, and will be hosted in the main "library" namespace + BaseImageTag = label["org.toradex.image.base.tag.major"] + "." + label["org.toradex.image.base.tag.minor"] + "-" + label["org.toradex.image.base.variant"] + } else if BaseImageNamespace == "torizon" && BaseImageName == "debian" { + // the torizon debian image follows a MAJOR-VARIANT + BaseImageTag = label["org.toradex.image.base.tag.major"] + "-" + label["org.toradex.image.base.variant"] + } else { + // for all other images the major suffices + BaseImageTag = label["org.toradex.image.base.tag.major"] + } + + if ImageNamespace+"/"+ImageName == member { + result[member] = map[string]string{ + "IMAGE_REGISTRY": label["org.toradex.image.registry"], + "IMAGE_NAMESPACE": ImageNamespace, + "IMAGE_NAME": ImageName, + "IMAGE_TAG": ImageTag, + "IMAGE_ARCH": label["org.toradex.image.arch"], + "BASE_IMAGE_REGISTRY": label["org.toradex.image.base.registry"], + "BASE_IMAGE_NAMESPACE": BaseImageNamespace, + "BASE_IMAGE_NAME": BaseImageName, + "BASE_IMAGE_TAG": BaseImageTag, + "DOCKERFILE_PATH": label["path"], + } + break + } + } + } + return result +} + +func WalkDirAndReturnPathsThatMatch(root string, name string) ([]string, error) { + var relativeContextPaths []string + err := filepath.WalkDir(root, func(path string, d fs.DirEntry, err error) error { + if d.IsDir() { + return nil + } + + if strings.Contains(path, name) { + relPath, err := filepath.Rel(root, path) + if err != nil { + return err + } + completeRelativePath := root + "/" + relPath + relDir := strings.TrimSuffix(completeRelativePath, "/Dockerfile") + relativeContextPaths = append(relativeContextPaths, relDir) + } + return nil + }) + return relativeContextPaths, err +} + +func buildImage(contextPath string, buildArgs map[string]*string) error { + // Create a Docker client + cli, err := client.NewClientWithOpts( + client.FromEnv, + client.WithAPIVersionNegotiation(), + ) + if err != nil { + return err + } + + // Always assume that contextPath is also the build context + buildContext, err := archive.TarWithOptions(contextPath, &archive.TarOptions{}) + if err != nil { + return err + } + + buildOptions := types.ImageBuildOptions{ + BuildArgs: buildArgs, + Dockerfile: "Dockerfile", + Context: buildContext, + Tags: []string{"testimage:tag"}, + } + + buildResponse, err := cli.ImageBuild(context.Background(), buildContext, buildOptions) + if err != nil { + return err + } + + // Print build logs + defer buildResponse.Body.Close() + _, err = io.Copy(os.Stdout, buildResponse.Body) + if err != nil { + return err + } + + log.Println("Image built successfully.") + + return nil +} + +func parseDockerfileLabels(filePath string) (map[string]string, error) { + file, err := os.Open(filePath) + if err != nil { + return nil, err + } + defer file.Close() + + var labelLine string + var foundLastLine bool + var foundDuplicatedEntries bool + var foundFirstLine bool + + labels := make(map[string]string) + scanner := bufio.NewScanner(file) + + for scanner.Scan() { + line := scanner.Text() + + // ignore lines that are not LABEL + if !strings.HasPrefix(line, "LABEL") && !foundFirstLine { + continue + } + if strings.HasPrefix(line, "LABEL") && (strings.HasSuffix(line, `\`)) { + foundFirstLine = true + labelLine = strings.TrimSpace(strings.TrimPrefix(line, "LABEL")) + } else if strings.HasPrefix(line, "LABEL") && !(strings.HasSuffix(line, `\`)) { + foundLastLine = true + foundFirstLine = true + } else if !strings.HasPrefix(line, "LABEL") && strings.HasSuffix(line, `\`) { + labelLine += strings.TrimSpace(strings.TrimSuffix(line, `\`)) + } else if !strings.HasPrefix(line, "LABEL") && !(strings.HasSuffix(line, `\`)) { + foundLastLine = true + labelLine = line + } + + if labelLine != "" { + labelPairs := strings.Split(labelLine, " ") + for _, labelPair := range labelPairs { + labelKeyValue := strings.SplitN(labelPair, "=", 2) + if len(labelKeyValue) == 2 { + key := strings.TrimSpace(labelKeyValue[0]) + value := strings.Trim(labelKeyValue[1], "\"") + if _, exists := labels[key]; exists { + log.Printf("Key '%s' already exists with value %s in %s\n", key, labels[key], filePath) + foundDuplicatedEntries = true + } else { + labels[key] = value + } + } + } + labelLine = "" + } + // if we reached the last line, drop out of the scanner loop + if foundLastLine { + break + } + } + if err := scanner.Err(); err != nil { + return nil, err + } + + if foundDuplicatedEntries { + return nil, errors.New("cannot continue with duplicated LABEL statements") + } + + return labels, nil +} diff --git a/builder/main_test.go b/builder/main_test.go new file mode 100644 index 0000000..78de308 --- /dev/null +++ b/builder/main_test.go @@ -0,0 +1,173 @@ +package main + +import ( + "os" + "reflect" + "testing" +) + +func TestParseDockerfileLabels(t *testing.T) { + tempDockerfile := "testDockerfile" + defer func() { + // Clean up the temporary Dockerfile after the test + if err := os.Remove(tempDockerfile); err != nil { + t.Errorf("Error cleaning up temporary Dockerfile: %v", err) + } + }() + + dockerfileContent := `FROM ubuntu +LABEL org.toradex.image.base.registry="docker.io" \ + org.toradex.image.base.namespace="library" \ + org.toradex.image.base.name="debian" \ + org.toradex.image.base.tag.major="12" \ + org.toradex.image.base.tag.minor="4" \ + org.toradex.image.base.tag.patch="" \ + org.toradex.image.variant="slim" \ + org.toradex.image.registry="docker.io" \ + org.toradex.image.namespace="torizon" \ + org.toradex.image.name="debian" \ + org.toradex.image.tag.major="rc" \ + org.toradex.image.tag.minor="" \ + org.toradex.image.tag.patch="" \ + org.toradex.image.tag.variant="bookworm" \ + org.toradex.image.license="MIT" \ + org.toradex.image.arch="linux/amd64,linux/arm64/v8,linux/arm/v7" +COPY kms-setup.sh /usr/bin/kms-setup.sh + +RUN apt-get -y update && apt-get install -y --no-install-recommends \ + apt-utils \ + && apt-get -y upgrade \ + && apt-get clean && apt-get autoremove && rm -rf /var/lib/apt/lists/* + +# Install libqt5gui5-gles before libqt5opengl5 which also has an alternate dependency on libqt5gui5(non-gles) +RUN apt-get -y update && apt-get install -y --no-install-recommends libqt5gui5-gles \ + && apt-get clean && apt-get autoremove && rm -rf /var/lib/apt/lists/* + +# Install libqt5opengl5. +# Under Bookworm, libqt5opengl5 is currently at version 5.15.8+dfsg-11 and contains a redundant dependency for libqt5gui5 (>= 5.1.0): +# +# This forbids installing qtbase5-examples with libqt5gui5-gles. +# Workaround the issue by mangling the package file and remove the leftover dependency for each of the architectures +RUN apt-get -y update \ + && ARCH=$(dpkg --print-architecture) \ + && if test "$ARCH" = 'arm64' ; \ + then \ + apt-get -y install --no-install-recommends binutils xz-utils \ + && WORK_DIR=$(mktemp -d) \ + && cd $WORK_DIR \ + && apt-get download libqt5opengl5:$ARCH \ + && ar x libqt5opengl5_*_$ARCH.deb \ + && tar -xJf control.tar.xz \ + && sed -i '/^Depends:/s/, libqt5gui5 (>= 5.1.0)//' control \ + && tar -cJf control.tar.xz control md5sums shlibs symbols triggers \ + && ar rcs libqt5opengl5.deb debian-binary control.tar.xz data.tar.xz \ + && apt-get -y install --no-install-recommends ./libqt5opengl5.deb \ + && cd ~ \ + && rm -rf $WORK_DIR \ + && apt-get -y remove binutils xz-utils \ + && apt-mark hold libqt5opengl5 ; \ + elif test "$ARCH" = 'x86_64' ; \ + then \ + apt-get -y install --no-install-recommends binutils xz-utils \ + && WORK_DIR=$(mktemp -d) \ + && cd $WORK_DIR \ + && apt-get download libqt5opengl5:$ARCH \ + && ar x libqt5opengl5_*_$ARCH.deb \ + && tar -xJf control.tar.xz \ + && sed -i '/^Depends:/s/, libqt5gui5 (>= 5.1.0)//' control \ + && tar -cJf control.tar.xz control md5sums shlibs symbols triggers \ + && ar rcs libqt5opengl5.deb debian-binary control.tar.xz data.tar.xz \ + && apt-get -y install --no-install-recommends ./libqt5opengl5.deb \ + && cd ~ \ + && rm -rf $WORK_DIR \ + && apt-get -y remove binutils xz-utils \ + && apt-mark hold libqt5opengl5 ; \ + else \ + apt-get -y install --no-install-recommends binutils xz-utils \ + && WORK_DIR=$(mktemp -d) \ + && cd $WORK_DIR \ + && apt-get download libqt5opengl5:$ARCH \ + && ar x libqt5opengl5_*_$ARCH.deb \ + && tar -xJf control.tar.xz \ + && sed -i '/^Depends:/s/, libqt5gui5 (>= 5.1.0)//' control \ + && tar -cJf control.tar.xz control md5sums shlibs symbols triggers \ + && ar rcs libqt5opengl5.deb debian-binary control.tar.xz data.tar.xz \ + && apt-get -y install --no-install-recommends ./libqt5opengl5.deb \ + && cd ~ \ + && rm -rf $WORK_DIR \ + && apt-get -y remove binutils xz-utils \ + && apt-mark hold libqt5opengl5 ; \ + fi \ + && apt-get clean && apt-get autoremove && rm -rf /var/lib/apt/lists/* + +# Install remaining dependencies required to run qtbase and qtdeclarative examples +RUN apt-get -y update && apt-get install -y --no-install-recommends \ + libfontconfig1-dev \ + libqt5quick5-gles \ + libqt5quickparticles5-gles \ + libqt5concurrent5 \ + libqt5dbus5 \ + libqt5network5 \ + libqt5printsupport5 \ + libqt5sql5 \ + libqt5test5 \ + libqt5widgets5 \ + libqt5xml5 \ + libqt5qml5 \ + libqt5quicktest5 \ + libqt5quickwidgets5 \ + qml-module-qt-labs-qmlmodels \ + qml-module-qtqml-models2 \ + qml-module-qtquick-layouts \ + qml-module-qtquick-localstorage \ + qml-module-qtquick-particles2 \ + qml-module-qtquick-shapes \ + qml-module-qttest \ + && apt-get clean && apt-get autoremove && rm -rf /var/lib/apt/lists/* + +# Install Wayland Qt module +RUN apt-get -y update && apt-get install -y --no-install-recommends \ + qtwayland5 \ + && apt-get clean && apt-get autoremove && rm -rf /var/lib/apt/lists/* + +ENV QT_QPA_PLATFORM="wayland" + +# EGLFS configuration +ENV QT_QPA_EGLFS_INTEGRATION="eglfs_kms" +ENV QT_QPA_EGLFS_KMS_ATOMIC="1" +ENV QT_QPA_EGLFS_KMS_CONFIG="/etc/kms.conf" + +` + + if err := os.WriteFile(tempDockerfile, []byte(dockerfileContent), 0644); err != nil { + t.Fatalf("Error creating temporary Dockerfile: %v", err) + } + + labels, err := parseDockerfileLabels(tempDockerfile) + if err != nil { + t.Errorf("Error parsing Dockerfile labels: %v", err) + } + + expectedLabels := map[string]string{ + "org.toradex.image.base.registry": "docker.io", + "org.toradex.image.base.namespace": "library", + "org.toradex.image.base.name": "debian", + "org.toradex.image.base.tag.major": "12", + "org.toradex.image.base.tag.minor": "4", + "org.toradex.image.base.tag.patch": "", + "org.toradex.image.variant": "slim", + "org.toradex.image.registry": "docker.io", + "org.toradex.image.namespace": "torizon", + "org.toradex.image.name": "debian", + "org.toradex.image.tag.major": "rc", + "org.toradex.image.tag.minor": "", + "org.toradex.image.tag.patch": "", + "org.toradex.image.tag.variant": "bookworm", + "org.toradex.image.license": "MIT", + "org.toradex.image.arch": "linux/amd64,linux/arm64/v8,linux/arm/v7", + } + + if !reflect.DeepEqual(labels, expectedLabels) { + t.Errorf("Parsed labels do not match expected labels. Got: %v, Expected: %v", labels, expectedLabels) + } +} diff --git a/debian-docker-images/am62/base-am62/Dockerfile b/debian-docker-images/am62/base-am62/Dockerfile index 90a9189..1e9240e 100644 --- a/debian-docker-images/am62/base-am62/Dockerfile +++ b/debian-docker-images/am62/base-am62/Dockerfile @@ -8,6 +8,22 @@ ARG ADD_TORADEX_REPOSITORY=1 ARG DOCKER_REGISTRY FROM ${DOCKER_REGISTRY}/debian:$DEBIAN_BASE_IMAGE AS base +LABEL org.toradex.image.base.registry="docker.io" \ + org.toradex.image.base.namespace="library" \ + org.toradex.image.base.name="debian" \ + org.toradex.image.base.tag.major="12" \ + org.toradex.image.base.tag.minor="4" \ + org.toradex.image.base.tag.patch="" \ + org.toradex.image.variant="slim" \ + org.toradex.image.registry="docker.io" \ + org.toradex.image.namespace="torizon" \ + org.toradex.image.name="debian-am62" \ + org.toradex.image.base.tag.major="rc" \ + org.toradex.image.base.tag.minor="" \ + org.toradex.image.base.tag.patch="" \ + org.toradex.image.license="MIT" \ + org.toradex.image.arch="linux/arm64/v8" + ARG DEBIAN_FRONTEND=noninteractive ONBUILD ARG DEBIAN_FRONTEND=noninteractive diff --git a/debian-docker-images/am62/chromium-am62/Dockerfile b/debian-docker-images/am62/chromium-am62/Dockerfile index 078d1de..e2d3da8 100644 --- a/debian-docker-images/am62/chromium-am62/Dockerfile +++ b/debian-docker-images/am62/chromium-am62/Dockerfile @@ -4,6 +4,22 @@ ARG IMAGE_TAG=4-rc FROM $DOCKER_REGISTRY/torizon/$BASE_NAME:$IMAGE_TAG +LABEL org.toradex.image.base.registry="docker.io" \ + org.toradex.image.base.namespace="torizon" \ + org.toradex.image.base.name="wayland-base-am62" \ + org.toradex.image.base.tag.major="rc" \ + org.toradex.image.base.tag.minor="" \ + org.toradex.image.base.tag.patch="" \ + org.toradex.image.variant="" \ + org.toradex.image.registry="docker.io" \ + org.toradex.image.namespace="torizon" \ + org.toradex.image.name="chromium-am62" \ + org.toradex.image.base.tag.major="rc" \ + org.toradex.image.base.tag.minor="" \ + org.toradex.image.base.tag.patch="" \ + org.toradex.image.license="MIT" \ + org.toradex.image.arch="linux/arm64/v8" + RUN apt-get -y update && \ apt-get install -y --no-install-recommends chromium chromium-sandbox && \ apt-get clean && apt-get autoremove && \ diff --git a/debian-docker-images/am62/cog-am62/Dockerfile b/debian-docker-images/am62/cog-am62/Dockerfile index 9db10a0..0291515 100644 --- a/debian-docker-images/am62/cog-am62/Dockerfile +++ b/debian-docker-images/am62/cog-am62/Dockerfile @@ -4,6 +4,22 @@ ARG IMAGE_TAG=3 FROM $DOCKER_REGISTRY/torizon/$BASE_NAME:$IMAGE_TAG +LABEL org.toradex.image.base.registry="docker.io" \ + org.toradex.image.base.namespace="torizon" \ + org.toradex.image.base.name="wayland-base-am62" \ + org.toradex.image.base.tag.major="rc" \ + org.toradex.image.base.tag.minor="" \ + org.toradex.image.base.tag.patch="" \ + org.toradex.image.variant="" \ + org.toradex.image.registry="docker.io" \ + org.toradex.image.namespace="torizon" \ + org.toradex.image.name="cog-am62" \ + org.toradex.image.base.tag.major="rc" \ + org.toradex.image.base.tag.minor="" \ + org.toradex.image.base.tag.patch="" \ + org.toradex.image.license="MIT" \ + org.toradex.image.arch="linux/arm64/v8" + RUN apt-get -y update && \ apt-get install -y --no-install-recommends cog && \ apt-get clean && apt-get autoremove && rm -rf /var/lib/apt/lists/* diff --git a/debian-docker-images/am62/qt5-wayland-am62/Dockerfile b/debian-docker-images/am62/qt5-wayland-am62/Dockerfile index 1414bb5..be3aa56 100644 --- a/debian-docker-images/am62/qt5-wayland-am62/Dockerfile +++ b/debian-docker-images/am62/qt5-wayland-am62/Dockerfile @@ -6,6 +6,22 @@ ARG IMAGE_TAG=3 ARG DOCKER_REGISTRY=torizon FROM $DOCKER_REGISTRY/torizon/$BASE_NAME:$IMAGE_TAG AS base +LABEL org.toradex.image.base.registry="docker.io" \ + org.toradex.image.base.namespace="torizon" \ + org.toradex.image.base.name="wayland-base-am62" \ + org.toradex.image.base.tag.major="rc" \ + org.toradex.image.base.tag.minor="" \ + org.toradex.image.base.tag.patch="" \ + org.toradex.image.variant="" \ + org.toradex.image.registry="docker.io" \ + org.toradex.image.namespace="torizon" \ + org.toradex.image.name="qt5-wayland-am62" \ + org.toradex.image.base.tag.major="rc" \ + org.toradex.image.base.tag.minor="" \ + org.toradex.image.base.tag.patch="" \ + org.toradex.image.license="MIT" \ + org.toradex.image.arch="linux/arm64/v8" + COPY kms-setup.sh /usr/bin/kms-setup.sh RUN apt-get -y update && apt-get install -y --no-install-recommends \ diff --git a/debian-docker-images/am62/qt5-wayland-examples-am62/Dockerfile b/debian-docker-images/am62/qt5-wayland-examples-am62/Dockerfile index 43a4e9a..91161ae 100644 --- a/debian-docker-images/am62/qt5-wayland-examples-am62/Dockerfile +++ b/debian-docker-images/am62/qt5-wayland-examples-am62/Dockerfile @@ -11,6 +11,23 @@ ARG QT5_EXAMPLES_DEBIAN ARG QT5_EXAMPLES_DEBIAN_INSTALL=${QT5_EXAMPLES_DEBIAN:+"qtbase5-examples qtdeclarative5-examples"} FROM $DOCKER_REGISTRY/torizon/$BASE_NAME:$IMAGE_TAG AS base + +LABEL org.toradex.image.base.registry="docker.io" \ + org.toradex.image.base.namespace="torizon" \ + org.toradex.image.base.name="qt5-wayland-am62" \ + org.toradex.image.base.tag.major="rc" \ + org.toradex.image.base.tag.minor="" \ + org.toradex.image.base.tag.patch="" \ + org.toradex.image.variant="" \ + org.toradex.image.registry="docker.io" \ + org.toradex.image.namespace="torizon" \ + org.toradex.image.name="qt5-wayland-examples-am62" \ + org.toradex.image.base.tag.major="rc" \ + org.toradex.image.base.tag.minor="" \ + org.toradex.image.base.tag.patch="" \ + org.toradex.image.license="MIT" \ + org.toradex.image.arch="linux/arm64/v8" + ARG QT5_EXAMPLES_DEBIAN_INSTALL RUN apt-get -y update && apt-get install -y --no-install-recommends \ diff --git a/debian-docker-images/am62/qt6-wayland-am62/Dockerfile b/debian-docker-images/am62/qt6-wayland-am62/Dockerfile index ec3fb1d..f055f81 100644 --- a/debian-docker-images/am62/qt6-wayland-am62/Dockerfile +++ b/debian-docker-images/am62/qt6-wayland-am62/Dockerfile @@ -3,6 +3,22 @@ ARG IMAGE_TAG=3 ARG DOCKER_REGISTRY FROM $DOCKER_REGISTRY/torizon/$BASE_NAME:$IMAGE_TAG AS base +LABEL org.toradex.image.base.registry="docker.io" \ + org.toradex.image.base.namespace="torizon" \ + org.toradex.image.base.name="wayland-base-am62" \ + org.toradex.image.base.tag.major="rc" \ + org.toradex.image.base.tag.minor="" \ + org.toradex.image.base.tag.patch="" \ + org.toradex.image.variant="" \ + org.toradex.image.registry="docker.io" \ + org.toradex.image.namespace="torizon" \ + org.toradex.image.name="qt6-wayland-am62" \ + org.toradex.image.base.tag.major="rc" \ + org.toradex.image.base.tag.minor="" \ + org.toradex.image.base.tag.patch="" \ + org.toradex.image.license="MIT" \ + org.toradex.image.arch="linux/arm64/v8" + COPY kms-setup.sh /usr/bin/kms-setup.sh RUN apt-get -y update && apt-get install -y --no-install-recommends \ diff --git a/debian-docker-images/am62/qt6-wayland-examples-am62/Dockerfile b/debian-docker-images/am62/qt6-wayland-examples-am62/Dockerfile index 33c4aac..f725d5e 100644 --- a/debian-docker-images/am62/qt6-wayland-examples-am62/Dockerfile +++ b/debian-docker-images/am62/qt6-wayland-examples-am62/Dockerfile @@ -7,6 +7,22 @@ ARG DOCKER_REGISTRY FROM $DOCKER_REGISTRY/torizon/$BASE_NAME:$IMAGE_TAG AS base +LABEL org.toradex.image.base.registry="docker.io" \ + org.toradex.image.base.namespace="torizon" \ + org.toradex.image.base.name="qt6-wayland-am62" \ + org.toradex.image.base.tag.major="rc" \ + org.toradex.image.base.tag.minor="" \ + org.toradex.image.base.tag.patch="" \ + org.toradex.image.variant="" \ + org.toradex.image.registry="docker.io" \ + org.toradex.image.namespace="torizon" \ + org.toradex.image.name="qt6-wayland-examples-am62" \ + org.toradex.image.base.tag.major="rc" \ + org.toradex.image.base.tag.minor="" \ + org.toradex.image.base.tag.patch="" \ + org.toradex.image.license="MIT" \ + org.toradex.image.arch="linux/arm64/v8" + RUN apt-get -y update && apt-get install -y --no-install-recommends \ qt6-base-examples \ && apt-get clean && apt-get autoremove && rm -rf /var/lib/apt/lists/* diff --git a/debian-docker-images/am62/tests-am62/chromium-tests-am62/Dockerfile b/debian-docker-images/am62/tests-am62/chromium-tests-am62/Dockerfile index 7a9e700..b527855 100644 --- a/debian-docker-images/am62/tests-am62/chromium-tests-am62/Dockerfile +++ b/debian-docker-images/am62/tests-am62/chromium-tests-am62/Dockerfile @@ -6,6 +6,22 @@ ARG IMAGE_TAG=4-rc ARG DOCKER_REGISTRY=torizon FROM $DOCKER_REGISTRY/torizon/$BASE_NAME:$IMAGE_TAG AS base +LABEL org.toradex.image.base.registry="docker.io" \ + org.toradex.image.base.namespace="torizon" \ + org.toradex.image.base.name="chromium-am62" \ + org.toradex.image.base.tag.major="rc" \ + org.toradex.image.base.tag.minor="" \ + org.toradex.image.base.tag.patch="" \ + org.toradex.image.variant="" \ + org.toradex.image.registry="docker.io" \ + org.toradex.image.namespace="torizon" \ + org.toradex.image.name="chromium-tests-am62" \ + org.toradex.image.base.tag.major="rc" \ + org.toradex.image.base.tag.minor="" \ + org.toradex.image.base.tag.patch="" \ + org.toradex.image.license="MIT" \ + org.toradex.image.arch="linux/arm64/v8" + ## Un-comment if you want to run it with the # integrated puppeteer chromium distribution # RUN apt-get update && apt-get install -y libnss3 \ diff --git a/debian-docker-images/am62/tests-am62/graphics-tests-am62/Dockerfile b/debian-docker-images/am62/tests-am62/graphics-tests-am62/Dockerfile index 91c07df..a969544 100644 --- a/debian-docker-images/am62/tests-am62/graphics-tests-am62/Dockerfile +++ b/debian-docker-images/am62/tests-am62/graphics-tests-am62/Dockerfile @@ -7,6 +7,22 @@ ARG DOCKER_REGISTRY=torizon FROM $DOCKER_REGISTRY/torizon/$BASE_NAME:$IMAGE_TAG AS base +LABEL org.toradex.image.base.registry="docker.io" \ + org.toradex.image.base.namespace="torizon" \ + org.toradex.image.base.name="wayland-base-am62" \ + org.toradex.image.base.tag.major="rc" \ + org.toradex.image.base.tag.minor="" \ + org.toradex.image.base.tag.patch="" \ + org.toradex.image.variant="" \ + org.toradex.image.registry="docker.io" \ + org.toradex.image.namespace="torizon" \ + org.toradex.image.name="graphics-tests-am62" \ + org.toradex.image.base.tag.major="rc" \ + org.toradex.image.base.tag.minor="" \ + org.toradex.image.base.tag.patch="" \ + org.toradex.image.license="MIT" \ + org.toradex.image.arch="linux/arm64/v8" + RUN apt-get -y update && apt-get install -y --no-install-recommends \ clinfo \ glmark2-es2-wayland \ diff --git a/debian-docker-images/am62/wayland-base-am62/Dockerfile b/debian-docker-images/am62/wayland-base-am62/Dockerfile index e43e534..2e19ac0 100644 --- a/debian-docker-images/am62/wayland-base-am62/Dockerfile +++ b/debian-docker-images/am62/wayland-base-am62/Dockerfile @@ -6,6 +6,22 @@ ARG IMAGE_TAG=3-bookworm ARG DOCKER_REGISTRY=torizon FROM $DOCKER_REGISTRY/torizon/$BASE_NAME:$IMAGE_TAG AS base +LABEL org.toradex.image.base.registry="docker.io" \ + org.toradex.image.base.namespace="torizon" \ + org.toradex.image.base.name="debian-am62" \ + org.toradex.image.base.tag.major="rc" \ + org.toradex.image.base.tag.minor="" \ + org.toradex.image.base.tag.patch="" \ + org.toradex.image.variant="" \ + org.toradex.image.registry="docker.io" \ + org.toradex.image.namespace="torizon" \ + org.toradex.image.name="wayland-base-am62" \ + org.toradex.image.base.tag.major="rc" \ + org.toradex.image.base.tag.minor="" \ + org.toradex.image.base.tag.patch="" \ + org.toradex.image.license="MIT" \ + org.toradex.image.arch="linux/arm64/v8" + RUN apt-get -y update && apt-get install -y \ libd3dadapter9-mesa \ libd3dadapter9-mesa-dev \ diff --git a/debian-docker-images/am62/weston-am62/Dockerfile b/debian-docker-images/am62/weston-am62/Dockerfile index f839289..38ca737 100644 --- a/debian-docker-images/am62/weston-am62/Dockerfile +++ b/debian-docker-images/am62/weston-am62/Dockerfile @@ -6,6 +6,22 @@ ARG IMAGE_TAG=3 ARG DOCKER_REGISTRY=docker.io FROM $DOCKER_REGISTRY/torizon/$BASE_NAME:$IMAGE_TAG AS base +LABEL org.toradex.image.base.registry="docker.io" \ + org.toradex.image.base.namespace="torizon" \ + org.toradex.image.base.name="wayland-base-am62" \ + org.toradex.image.base.tag.major="rc" \ + org.toradex.image.base.tag.minor="" \ + org.toradex.image.base.tag.patch="" \ + org.toradex.image.variant="" \ + org.toradex.image.registry="docker.io" \ + org.toradex.image.namespace="torizon" \ + org.toradex.image.name="weston-am62" \ + org.toradex.image.base.tag.major="rc" \ + org.toradex.image.base.tag.minor="" \ + org.toradex.image.base.tag.patch="" \ + org.toradex.image.license="MIT" \ + org.toradex.image.arch="linux/arm64/v8" + # Install the weston compositor. RUN apt-get -y update && apt-get install -y --no-install-recommends \ weston \ diff --git a/debian-docker-images/am62/weston-touch-calibrator-am62/Dockerfile b/debian-docker-images/am62/weston-touch-calibrator-am62/Dockerfile index ec384a2..1520ba9 100644 --- a/debian-docker-images/am62/weston-touch-calibrator-am62/Dockerfile +++ b/debian-docker-images/am62/weston-touch-calibrator-am62/Dockerfile @@ -6,6 +6,22 @@ ARG IMAGE_TAG=3 ARG DOCKER_REGISTRY=torizon FROM $DOCKER_REGISTRY/torizon/$BASE_NAME:$IMAGE_TAG AS base +LABEL org.toradex.image.base.registry="docker.io" \ + org.toradex.image.base.namespace="torizon" \ + org.toradex.image.base.name="weston-am62" \ + org.toradex.image.base.tag.major="rc" \ + org.toradex.image.base.tag.minor="" \ + org.toradex.image.base.tag.patch="" \ + org.toradex.image.variant="" \ + org.toradex.image.registry="docker.io" \ + org.toradex.image.namespace="torizon" \ + org.toradex.image.name="weston-touch-calibrator-am62" \ + org.toradex.image.base.tag.major="rc" \ + org.toradex.image.base.tag.minor="" \ + org.toradex.image.base.tag.patch="" \ + org.toradex.image.license="MIT" \ + org.toradex.image.arch="linux/arm64/v8" + COPY entry.sh /usr/bin/ RUN mkdir -p /etc/xdg/weston/ COPY weston.ini /etc/xdg/weston/ diff --git a/debian-docker-images/imx8/base-imx8/Dockerfile b/debian-docker-images/imx8/base-imx8/Dockerfile index 91a6e41..acbab68 100644 --- a/debian-docker-images/imx8/base-imx8/Dockerfile +++ b/debian-docker-images/imx8/base-imx8/Dockerfile @@ -1,12 +1,28 @@ # Copyright (c) 2019-2023 Toradex AG # SPDX-License-Identifier: MIT -ARG DEBIAN_BASE_IMAGE=bookworm-slim -ARG TORADEX_SNAPSHOT -ARG USE_TORADEX_SNAPSHOT=1 -ARG ADD_TORADEX_REPOSITORY=1 -ARG DOCKER_REGISTRY -FROM ${DOCKER_REGISTRY}/debian:$DEBIAN_BASE_IMAGE AS base +ARG BASE_IMAGE_REGISTRY +ARG BASE_IMAGE_NAMESPACE +ARG BASE_IMAGE_NAME +ARG BASE_IMAGE_TAG + +FROM $BASE_IMAGE_REGISTRY/$BASE_IMAGE_NAMESPACE/$BASE_IMAGE_NAME:$BASE_IMAGE_TAG + +LABEL org.toradex.image.base.registry="docker.io" \ + org.toradex.image.base.namespace="library" \ + org.toradex.image.base.name="debian" \ + org.toradex.image.base.tag.major="12" \ + org.toradex.image.base.tag.minor="4" \ + org.toradex.image.base.tag.patch="" \ + org.toradex.image.variant="slim" \ + org.toradex.image.registry="docker.io" \ + org.toradex.image.namespace="torizon" \ + org.toradex.image.name="debian-imx8" \ + org.toradex.image.base.tag.major="rc" \ + org.toradex.image.base.tag.minor="" \ + org.toradex.image.base.tag.patch="" \ + org.toradex.image.license="MIT" \ + org.toradex.image.arch="linux/arm64/v8" ARG DEBIAN_FRONTEND=noninteractive ONBUILD ARG DEBIAN_FRONTEND=noninteractive diff --git a/debian-docker-images/imx8/chromium-imx8/Dockerfile b/debian-docker-images/imx8/chromium-imx8/Dockerfile index 5889c7f..59b6b3d 100644 --- a/debian-docker-images/imx8/chromium-imx8/Dockerfile +++ b/debian-docker-images/imx8/chromium-imx8/Dockerfile @@ -1,8 +1,21 @@ -ARG BASE_NAME=wayland-base-imx8 -ARG DOCKER_REGISTRY -ARG IMAGE_TAG=3 +# Copyright (c) 2019-2023 Toradex AG +# SPDX-License-Identifier: MIT -FROM $DOCKER_REGISTRY/torizon/$BASE_NAME:$IMAGE_TAG +ARG BASE_IMAGE_REGISTRY +ARG BASE_IMAGE_NAMESPACE +ARG BASE_IMAGE_NAME +ARG BASE_IMAGE_TAG + +FROM $BASE_IMAGE_REGISTRY/$BASE_IMAGE_NAMESPACE/$BASE_IMAGE_NAME:$BASE_IMAGE_TAG + +LABEL org.toradex.image.base.namespace="torizon" \ + org.toradex.image.base.name="wayland-base-imx8" \ + org.toradex.image.base.tag="rc" \ + org.toradex.image.namespace="torizon" \ + org.toradex.image.name="chromium-imx8" \ + org.toradex.image.tag="rc" \ + org.toradex.image.license="MIT" \ + org.toradex.image.arch="linux/arm64/v8" RUN apt-get -y update && \ apt-get install -y --no-install-recommends chromium chromium-sandbox && \ diff --git a/debian-docker-images/imx8/cog-imx8/Dockerfile b/debian-docker-images/imx8/cog-imx8/Dockerfile index 6cc4ced..68c0d14 100644 --- a/debian-docker-images/imx8/cog-imx8/Dockerfile +++ b/debian-docker-images/imx8/cog-imx8/Dockerfile @@ -1,8 +1,21 @@ -ARG BASE_NAME=wayland-base-imx8 -ARG DOCKER_REGISTRY -ARG IMAGE_TAG=3 +# Copyright (c) 2019-2023 Toradex AG +# SPDX-License-Identifier: MIT -FROM $DOCKER_REGISTRY/torizon/$BASE_NAME:$IMAGE_TAG +ARG BASE_IMAGE_REGISTRY +ARG BASE_IMAGE_NAMESPACE +ARG BASE_IMAGE_NAME +ARG BASE_IMAGE_TAG + +FROM $BASE_IMAGE_REGISTRY/$BASE_IMAGE_NAMESPACE/$BASE_IMAGE_NAME:$BASE_IMAGE_TAG + +LABEL org.toradex.image.base.namespace="torizon" \ + org.toradex.image.base.name="wayland-base-imx8" \ + org.toradex.image.base.tag="rc" \ + org.toradex.image.namespace="torizon" \ + org.toradex.image.name="cog-imx8" \ + org.toradex.image.tag="rc" \ + org.toradex.image.license="MIT" \ + org.toradex.image.arch="linux/arm64/v8" RUN apt-get -y update && \ apt-get install -y --no-install-recommends cog && \ diff --git a/debian-docker-images/imx8/gputop-imx8/Dockerfile b/debian-docker-images/imx8/gputop-imx8/Dockerfile index 2acd1e6..e71e420 100644 --- a/debian-docker-images/imx8/gputop-imx8/Dockerfile +++ b/debian-docker-images/imx8/gputop-imx8/Dockerfile @@ -1,11 +1,21 @@ # Copyright (c) 2019-2023 Toradex AG # SPDX-License-Identifier: MIT -ARG BASE_NAME -ARG IMAGE_TAG -ARG DOCKER_REGISTRY +ARG BASE_IMAGE_REGISTRY +ARG BASE_IMAGE_NAMESPACE +ARG BASE_IMAGE_NAME +ARG BASE_IMAGE_TAG -FROM $DOCKER_REGISTRY/torizon/$BASE_NAME:$IMAGE_TAG AS base +FROM $BASE_IMAGE_REGISTRY/$BASE_IMAGE_NAMESPACE/$BASE_IMAGE_NAME:$BASE_IMAGE_TAG + +LABEL org.toradex.image.base.namespace="torizon" \ + org.toradex.image.base.name="debian-imx8" \ + org.toradex.image.base.tag="rc" \ + org.toradex.image.namespace="torizon" \ + org.toradex.image.name="gputop-imx8" \ + org.toradex.image.tag="rc" \ + org.toradex.image.license="MIT" \ + org.toradex.image.arch="linux/arm64/v8" RUN apt-get -y update && apt-get install -y --no-install-recommends \ gputop \ diff --git a/debian-docker-images/imx8/qt5-wayland-examples-imx8/Dockerfile b/debian-docker-images/imx8/qt5-wayland-examples-imx8/Dockerfile index 184378a..abfe12b 100644 --- a/debian-docker-images/imx8/qt5-wayland-examples-imx8/Dockerfile +++ b/debian-docker-images/imx8/qt5-wayland-examples-imx8/Dockerfile @@ -1,18 +1,22 @@ # Copyright (c) 2019-2023 Toradex AG # SPDX-License-Identifier: MIT -ARG BASE_NAME=qt5-wayland-vivante -ARG IMAGE_TAG=3 -ARG DOCKER_REGISTRY=torizon +ARG BASE_IMAGE_REGISTRY +ARG BASE_IMAGE_NAMESPACE +ARG BASE_IMAGE_NAME +ARG BASE_IMAGE_TAG -ARG QT5_EXAMPLES_DEBIAN -# Uncomment the line below if building outside of the context of GitLab CI -# ARG QT5_EXAMPLES_DEBIAN=1 -ARG QT5_EXAMPLES_DEBIAN_INSTALL=${QT5_EXAMPLES_DEBIAN:+"qtbase5-examples qtdeclarative5-examples"} +FROM $BASE_IMAGE_REGISTRY/$BASE_IMAGE_NAMESPACE/$BASE_IMAGE_NAME:$BASE_IMAGE_TAG -FROM $DOCKER_REGISTRY/torizon/$BASE_NAME:$IMAGE_TAG AS base -ARG QT5_EXAMPLES_DEBIAN_INSTALL +LABEL org.toradex.image.base.namespace="torizon" \ + org.toradex.image.base.name="qt5-wayland-imx8" \ + org.toradex.image.base.tag="rc" \ + org.toradex.image.namespace="torizon" \ + org.toradex.image.name="qt5-wayland-examples-imx8" \ + org.toradex.image.tag="rc" \ + org.toradex.image.license="MIT" \ + org.toradex.image.arch="linux/arm64/v8" RUN apt-get -y update && apt-get install -y --no-install-recommends \ - ${QT5_EXAMPLES_DEBIAN_INSTALL} \ + qtbase5-examples qtdeclarative5-examples \ && apt-get clean && apt-get autoremove && rm -rf /var/lib/apt/lists/* diff --git a/debian-docker-images/imx8/qt5-wayland-imx8/Dockerfile b/debian-docker-images/imx8/qt5-wayland-imx8/Dockerfile index 48f9d76..54812c4 100644 --- a/debian-docker-images/imx8/qt5-wayland-imx8/Dockerfile +++ b/debian-docker-images/imx8/qt5-wayland-imx8/Dockerfile @@ -6,6 +6,15 @@ ARG IMAGE_TAG=3 ARG DOCKER_REGISTRY=torizon FROM $DOCKER_REGISTRY/torizon/$BASE_NAME:$IMAGE_TAG AS base +LABEL org.toradex.image.base.namespace="torizon" \ + org.toradex.image.base.name="wayland-base-imx8" \ + org.toradex.image.base.tag="rc" \ + org.toradex.image.namespace="torizon" \ + org.toradex.image.name="qt5-wayland-imx8" \ + org.toradex.image.tag="rc" \ + org.toradex.image.license="MIT" \ + org.toradex.image.arch="linux/arm64/v8" + COPY kms-setup.sh /usr/bin/kms-setup.sh RUN apt-get -y update && apt-get install -y --no-install-recommends \ diff --git a/debian-docker-images/imx8/qt6-wayland-examples-imx8/Dockerfile b/debian-docker-images/imx8/qt6-wayland-examples-imx8/Dockerfile index 866a77c..d226bf2 100644 --- a/debian-docker-images/imx8/qt6-wayland-examples-imx8/Dockerfile +++ b/debian-docker-images/imx8/qt6-wayland-examples-imx8/Dockerfile @@ -7,6 +7,15 @@ ARG DOCKER_REGISTRY FROM $DOCKER_REGISTRY/torizon/$BASE_NAME:$IMAGE_TAG AS base +LABEL org.toradex.image.base.namespace="torizon" \ + org.toradex.image.base.name="wayland-base-imx8" \ + org.toradex.image.base.tag="rc" \ + org.toradex.image.namespace="torizon" \ + org.toradex.image.name="qt6-wayland-examples-imx8" \ + org.toradex.image.tag="rc" \ + org.toradex.image.license="MIT" \ + org.toradex.image.arch="linux/arm64/v8" + RUN apt-get -y update && apt-get install -y --no-install-recommends \ qt6-base-examples \ && apt-get clean && apt-get autoremove && rm -rf /var/lib/apt/lists/* diff --git a/debian-docker-images/imx8/qt6-wayland-imx8/Dockerfile b/debian-docker-images/imx8/qt6-wayland-imx8/Dockerfile index ae810eb..6221d7d 100644 --- a/debian-docker-images/imx8/qt6-wayland-imx8/Dockerfile +++ b/debian-docker-images/imx8/qt6-wayland-imx8/Dockerfile @@ -3,6 +3,15 @@ ARG IMAGE_TAG=3 ARG DOCKER_REGISTRY FROM $DOCKER_REGISTRY/torizon/$BASE_NAME:$IMAGE_TAG AS base +LABEL org.toradex.image.base.namespace="torizon" \ + org.toradex.image.base.name="wayland-base-imx8" \ + org.toradex.image.base.tag="rc" \ + org.toradex.image.namespace="torizon" \ + org.toradex.image.name="qt6-wayland-imx8" \ + org.toradex.image.tag="rc" \ + org.toradex.image.license="MIT" \ + org.toradex.image.arch="linux/arm64/v8" + COPY kms-setup.sh /usr/bin/kms-setup.sh RUN apt-get -y update && apt-get install -y --no-install-recommends \ diff --git a/debian-docker-images/imx8/tests-imx8/graphics-tests-imx8/Dockerfile b/debian-docker-images/imx8/tests-imx8/graphics-tests-imx8/Dockerfile index 269915a..78f6fd2 100644 --- a/debian-docker-images/imx8/tests-imx8/graphics-tests-imx8/Dockerfile +++ b/debian-docker-images/imx8/tests-imx8/graphics-tests-imx8/Dockerfile @@ -7,6 +7,15 @@ ARG DOCKER_REGISTRY=torizon FROM $DOCKER_REGISTRY/torizon/$BASE_NAME:$IMAGE_TAG AS base +LABEL org.toradex.image.base.namespace="torizon" \ + org.toradex.image.base.name="wayland-base-imx8" \ + org.toradex.image.base.tag="rc" \ + org.toradex.image.namespace="torizon" \ + org.toradex.image.name="graphics-tests-imx8" \ + org.toradex.image.tag="rc" \ + org.toradex.image.license="MIT" \ + org.toradex.image.arch="linux/arm64/v8" + RUN apt-get -y update && apt-get install -y --no-install-recommends \ clinfo \ glmark2-es2-wayland \ diff --git a/debian-docker-images/imx8/wayland-base-imx8/Dockerfile b/debian-docker-images/imx8/wayland-base-imx8/Dockerfile index ad3778d..f21c26a 100644 --- a/debian-docker-images/imx8/wayland-base-imx8/Dockerfile +++ b/debian-docker-images/imx8/wayland-base-imx8/Dockerfile @@ -6,6 +6,15 @@ ARG IMAGE_TAG=3-bookworm ARG DOCKER_REGISTRY=torizon FROM $DOCKER_REGISTRY/torizon/$BASE_NAME:$IMAGE_TAG AS base +LABEL org.toradex.image.base.namespace="torizon" \ + org.toradex.image.base.name="debian-imx8" \ + org.toradex.image.base.tag="rc" \ + org.toradex.image.namespace="torizon" \ + org.toradex.image.name="wayland-base-imx8" \ + org.toradex.image.tag="rc" \ + org.toradex.image.license="MIT" \ + org.toradex.image.arch="linux/arm64/v8" + RUN apt-get -y update && apt-get install -y --no-install-recommends \ apt-utils \ curl \ diff --git a/debian-docker-images/imx8/weston-imx8/Dockerfile b/debian-docker-images/imx8/weston-imx8/Dockerfile index 6abdf2e..2124ee7 100644 --- a/debian-docker-images/imx8/weston-imx8/Dockerfile +++ b/debian-docker-images/imx8/weston-imx8/Dockerfile @@ -6,6 +6,15 @@ ARG IMAGE_TAG=3 ARG DOCKER_REGISTRY=torizon FROM $DOCKER_REGISTRY/torizon/$BASE_NAME:$IMAGE_TAG AS base +LABEL org.toradex.image.base.namespace="torizon" \ + org.toradex.image.base.name="wayland-base-imx8" \ + org.toradex.image.base.tag="rc" \ + org.toradex.image.namespace="torizon" \ + org.toradex.image.name="weston-imx8" \ + org.toradex.image.tag="rc" \ + org.toradex.image.license="MIT" \ + org.toradex.image.arch="linux/arm64/v8" + # Install the weston compositor. RUN apt-get -y update && apt-get install -y --no-install-recommends \ weston \ diff --git a/debian-docker-images/imx8/weston-touch-calibrator-imx8/Dockerfile b/debian-docker-images/imx8/weston-touch-calibrator-imx8/Dockerfile index 08539de..46c22e2 100644 --- a/debian-docker-images/imx8/weston-touch-calibrator-imx8/Dockerfile +++ b/debian-docker-images/imx8/weston-touch-calibrator-imx8/Dockerfile @@ -6,6 +6,15 @@ ARG IMAGE_TAG=3 ARG DOCKER_REGISTRY=torizon FROM $DOCKER_REGISTRY/torizon/$BASE_NAME:$IMAGE_TAG AS base +LABEL org.toradex.image.base.namespace="torizon" \ + org.toradex.image.base.name="weston-imx8" \ + org.toradex.image.base.tag="rc" \ + org.toradex.image.namespace="torizon" \ + org.toradex.image.name="weston-touch-calibrator-imx8" \ + org.toradex.image.tag="rc" \ + org.toradex.image.license="MIT" \ + org.toradex.image.arch="linux/arm64/v8" + COPY entry.sh /usr/bin/ RUN mkdir -p /etc/xdg/weston/ COPY weston.ini /etc/xdg/weston/ diff --git a/debian-docker-images/upstream/base/Dockerfile b/debian-docker-images/upstream/base/Dockerfile index 1ffca71..143c891 100644 --- a/debian-docker-images/upstream/base/Dockerfile +++ b/debian-docker-images/upstream/base/Dockerfile @@ -1,12 +1,31 @@ # Copyright (c) 2019-2023 Toradex AG # SPDX-License-Identifier: MIT -ARG DEBIAN_BASE_IMAGE=bookworm-slim -ARG DOCKER_REGISTRY -FROM ${DOCKER_REGISTRY}/debian:$DEBIAN_BASE_IMAGE AS base +ARG BASE_IMAGE_REGISTRY +ARG BASE_IMAGE_NAMESPACE +ARG BASE_IMAGE_NAME +ARG BASE_IMAGE_TAG + +FROM $BASE_IMAGE_REGISTRY/$BASE_IMAGE_NAMESPACE/$BASE_IMAGE_NAME:$BASE_IMAGE_TAG + +LABEL org.toradex.image.base.registry="docker.io" \ + org.toradex.image.base.namespace="library" \ + org.toradex.image.base.name="debian" \ + org.toradex.image.base.tag.major="12" \ + org.toradex.image.base.tag.minor="4" \ + org.toradex.image.base.tag.patch="" \ + org.toradex.image.variant="slim" \ + org.toradex.image.registry="docker.io" \ + org.toradex.image.namespace="torizon" \ + org.toradex.image.name="debian" \ + org.toradex.image.tag.major="rc" \ + org.toradex.image.tag.minor="" \ + org.toradex.image.tag.patch="" \ + org.toradex.image.tag.variant="bookworm" \ + org.toradex.image.license="MIT" \ + org.toradex.image.arch="linux/amd64,linux/arm64/v8,linux/arm/v7" ARG DEBIAN_FRONTEND=noninteractive -ONBUILD ARG DEBIAN_FRONTEND=noninteractive # Upgrade & install required packages RUN apt-get update \ diff --git a/debian-docker-images/upstream/chromium/Dockerfile b/debian-docker-images/upstream/chromium/Dockerfile index 078d1de..42e86d1 100644 --- a/debian-docker-images/upstream/chromium/Dockerfile +++ b/debian-docker-images/upstream/chromium/Dockerfile @@ -1,8 +1,29 @@ -ARG BASE_NAME=wayland-base -ARG DOCKER_REGISTRY=docker.io -ARG IMAGE_TAG=4-rc +# Copyright (c) 2019-2023 Toradex AG +# SPDX-License-Identifier: MIT -FROM $DOCKER_REGISTRY/torizon/$BASE_NAME:$IMAGE_TAG +ARG BASE_IMAGE_REGISTRY +ARG BASE_IMAGE_NAMESPACE +ARG BASE_IMAGE_NAME +ARG BASE_IMAGE_TAG + +FROM $BASE_IMAGE_REGISTRY/$BASE_IMAGE_NAMESPACE/$BASE_IMAGE_NAME:$BASE_IMAGE_TAG + +LABEL org.toradex.image.base.registry="docker.io" \ + org.toradex.image.base.namespace="torizon" \ + org.toradex.image.base.name="wayland-base" \ + org.toradex.image.base.tag.major="rc" \ + org.toradex.image.base.tag.minor="" \ + org.toradex.image.base.tag.patch="" \ + org.toradex.image.base.tag.variant="" \ + org.toradex.image.registry="docker.io" \ + org.toradex.image.namespace="torizon" \ + org.toradex.image.name="chromium" \ + org.toradex.image.tag.major="rc" \ + org.toradex.image.tag.minor="" \ + org.toradex.image.tag.patch="" \ + org.toradex.image.tag.variant="" \ + org.toradex.image.license="MIT" \ + org.toradex.image.arch="linux/amd64,linux/arm64/v8,linux/arm/v7" RUN apt-get -y update && \ apt-get install -y --no-install-recommends chromium chromium-sandbox && \ diff --git a/debian-docker-images/upstream/cog/Dockerfile b/debian-docker-images/upstream/cog/Dockerfile index 9db10a0..be9e3d5 100644 --- a/debian-docker-images/upstream/cog/Dockerfile +++ b/debian-docker-images/upstream/cog/Dockerfile @@ -1,8 +1,29 @@ -ARG BASE_NAME=wayland-base -ARG DOCKER_REGISTRY -ARG IMAGE_TAG=3 +# Copyright (c) 2019-2023 Toradex AG +# SPDX-License-Identifier: MIT -FROM $DOCKER_REGISTRY/torizon/$BASE_NAME:$IMAGE_TAG +ARG BASE_IMAGE_REGISTRY +ARG BASE_IMAGE_NAMESPACE +ARG BASE_IMAGE_NAME +ARG BASE_IMAGE_TAG + +FROM $BASE_IMAGE_REGISTRY/$BASE_IMAGE_NAMESPACE/$BASE_IMAGE_NAME:$BASE_IMAGE_TAG + +LABEL org.toradex.image.base.registry="docker.io" \ + org.toradex.image.base.namespace="torizon" \ + org.toradex.image.base.name="wayland-base" \ + org.toradex.image.base.tag.major="rc" \ + org.toradex.image.base.tag.minor="" \ + org.toradex.image.base.tag.patch="" \ + org.toradex.image.base.tag.variant="" \ + org.toradex.image.registry="docker.io" \ + org.toradex.image.namespace="torizon" \ + org.toradex.image.name="cog" \ + org.toradex.image.tag.major="rc" \ + org.toradex.image.tag.minor="" \ + org.toradex.image.tag.patch="" \ + org.toradex.image.tag.variant="" \ + org.toradex.image.license="MIT" \ + org.toradex.image.arch="linux/arm64/v8" RUN apt-get -y update && \ apt-get install -y --no-install-recommends cog && \ diff --git a/debian-docker-images/upstream/qt5-wayland-examples/Dockerfile b/debian-docker-images/upstream/qt5-wayland-examples/Dockerfile index 9916e20..443e54c 100644 --- a/debian-docker-images/upstream/qt5-wayland-examples/Dockerfile +++ b/debian-docker-images/upstream/qt5-wayland-examples/Dockerfile @@ -1,18 +1,30 @@ # Copyright (c) 2019-2023 Toradex AG # SPDX-License-Identifier: MIT -ARG BASE_NAME=qt5-wayland -ARG IMAGE_TAG=3 -ARG DOCKER_REGISTRY=docker.io -ARG DOCKER_NAMESPACE=torizon -ARG QT5_EXAMPLES_DEBIAN -# Uncomment the line below if building outside of the context of GitLab CI -ARG QT5_EXAMPLES_DEBIAN=1 -ARG QT5_EXAMPLES_DEBIAN_INSTALL=${QT5_EXAMPLES_DEBIAN:+"qtbase5-examples qtdeclarative5-examples"} +ARG BASE_IMAGE_REGISTRY +ARG BASE_IMAGE_NAMESPACE +ARG BASE_IMAGE_NAME +ARG BASE_IMAGE_TAG -FROM $DOCKER_REGISTRY/$DOCKER_NAMESPACE/$BASE_NAME:$IMAGE_TAG AS base -ARG QT5_EXAMPLES_DEBIAN_INSTALL +FROM $BASE_IMAGE_REGISTRY/$BASE_IMAGE_NAMESPACE/$BASE_IMAGE_NAME:$BASE_IMAGE_TAG + +LABEL org.toradex.image.base.registry="docker.io" \ + org.toradex.image.base.namespace="torizon" \ + org.toradex.image.base.name="qt5-wayland" \ + org.toradex.image.base.tag.major="rc" \ + org.toradex.image.base.tag.minor="" \ + org.toradex.image.base.tag.patch="" \ + org.toradex.image.base.tag.variant="" \ + org.toradex.image.registry="docker.io" \ + org.toradex.image.namespace="torizon" \ + org.toradex.image.name="qt5-wayland-examples" \ + org.toradex.image.tag.major="rc" \ + org.toradex.image.tag.minor="" \ + org.toradex.image.tag.patch="" \ + org.toradex.image.tag.variant="" \ + org.toradex.image.license="MIT" \ + org.toradex.image.arch="linux/amd64,linux/arm64/v8,linux/arm/v7" RUN apt-get -y update && apt-get install -y --no-install-recommends \ - ${QT5_EXAMPLES_DEBIAN_INSTALL} \ + qtbase5-examples qtdeclarative5-examples \ && apt-get clean && apt-get autoremove && rm -rf /var/lib/apt/lists/* diff --git a/debian-docker-images/upstream/qt5-wayland/Dockerfile b/debian-docker-images/upstream/qt5-wayland/Dockerfile index ad4c7ac..c9e28f5 100644 --- a/debian-docker-images/upstream/qt5-wayland/Dockerfile +++ b/debian-docker-images/upstream/qt5-wayland/Dockerfile @@ -1,10 +1,29 @@ # Copyright (c) 2019-2023 Toradex AG # SPDX-License-Identifier: MIT -ARG BASE_NAME=wayland-base -ARG IMAGE_TAG=3 -ARG DOCKER_REGISTRY -FROM $DOCKER_REGISTRY/torizon/$BASE_NAME:$IMAGE_TAG AS base +ARG BASE_IMAGE_REGISTRY +ARG BASE_IMAGE_NAMESPACE +ARG BASE_IMAGE_NAME +ARG BASE_IMAGE_TAG + +FROM $BASE_IMAGE_REGISTRY/$BASE_IMAGE_NAMESPACE/$BASE_IMAGE_NAME:$BASE_IMAGE_TAG + +LABEL org.toradex.image.base.registry="docker.io" \ + org.toradex.image.base.namespace="torizon" \ + org.toradex.image.base.name="wayland-base" \ + org.toradex.image.base.tag.major="rc" \ + org.toradex.image.base.tag.minor="" \ + org.toradex.image.base.tag.patch="" \ + org.toradex.image.base.tag.variant="" \ + org.toradex.image.registry="docker.io" \ + org.toradex.image.namespace="torizon" \ + org.toradex.image.name="qt5-wayland" \ + org.toradex.image.tag.major="rc" \ + org.toradex.image.tag.minor="" \ + org.toradex.image.tag.patch="" \ + org.toradex.image.tag.variant="" \ + org.toradex.image.license="MIT" \ + org.toradex.image.arch="linux/arm64/v8" COPY kms-setup.sh /usr/bin/kms-setup.sh diff --git a/debian-docker-images/upstream/qt6-wayland-examples/Dockerfile b/debian-docker-images/upstream/qt6-wayland-examples/Dockerfile index 33c4aac..0af5dec 100644 --- a/debian-docker-images/upstream/qt6-wayland-examples/Dockerfile +++ b/debian-docker-images/upstream/qt6-wayland-examples/Dockerfile @@ -1,11 +1,29 @@ # Copyright (c) 2019-2023 Toradex AG # SPDX-License-Identifier: MIT -ARG BASE_NAME=qt5-wayland -ARG IMAGE_TAG=3 -ARG DOCKER_REGISTRY +ARG BASE_IMAGE_REGISTRY +ARG BASE_IMAGE_NAMESPACE +ARG BASE_IMAGE_NAME +ARG BASE_IMAGE_TAG -FROM $DOCKER_REGISTRY/torizon/$BASE_NAME:$IMAGE_TAG AS base +FROM $BASE_IMAGE_REGISTRY/$BASE_IMAGE_NAMESPACE/$BASE_IMAGE_NAME:$BASE_IMAGE_TAG + +LABEL org.toradex.image.base.registry="docker.io" \ + org.toradex.image.base.namespace="library" \ + org.toradex.image.base.name="qt6-wayland" \ + org.toradex.image.base.tag.major="rc" \ + org.toradex.image.base.tag.minor="" \ + org.toradex.image.base.tag.patch="" \ + org.toradex.image.base.tag.variant="" \ + org.toradex.image.registry="docker.io" \ + org.toradex.image.namespace="torizon" \ + org.toradex.image.name="qt6-wayland-examples" \ + org.toradex.image.tag.major="rc" \ + org.toradex.image.tag.minor="" \ + org.toradex.image.tag.patch="" \ + org.toradex.image.tag.variant="" \ + org.toradex.image.license="MIT" \ + org.toradex.image.arch="linux/amd64,linux/arm64/v8,linux/arm/v7" RUN apt-get -y update && apt-get install -y --no-install-recommends \ qt6-base-examples \ diff --git a/debian-docker-images/upstream/qt6-wayland/Dockerfile b/debian-docker-images/upstream/qt6-wayland/Dockerfile index ec3fb1d..c8f72f6 100644 --- a/debian-docker-images/upstream/qt6-wayland/Dockerfile +++ b/debian-docker-images/upstream/qt6-wayland/Dockerfile @@ -1,7 +1,29 @@ -ARG BASE_NAME=wayland-base -ARG IMAGE_TAG=3 -ARG DOCKER_REGISTRY -FROM $DOCKER_REGISTRY/torizon/$BASE_NAME:$IMAGE_TAG AS base +# Copyright (c) 2019-2023 Toradex AG +# SPDX-License-Identifier: MIT + +ARG BASE_IMAGE_REGISTRY +ARG BASE_IMAGE_NAMESPACE +ARG BASE_IMAGE_NAME +ARG BASE_IMAGE_TAG + +FROM $BASE_IMAGE_REGISTRY/$BASE_IMAGE_NAMESPACE/$BASE_IMAGE_NAME:$BASE_IMAGE_TAG + +LABEL org.toradex.image.base.registry="docker.io" \ + org.toradex.image.base.namespace="torizon" \ + org.toradex.image.base.name="wayland-base" \ + org.toradex.image.base.tag.major="rc" \ + org.toradex.image.base.tag.minor="" \ + org.toradex.image.base.tag.patch="" \ + org.toradex.image.base.tag.variant="" \ + org.toradex.image.registry="docker.io" \ + org.toradex.image.namespace="torizon" \ + org.toradex.image.name="qt6-wayland" \ + org.toradex.image.tag.major="rc" \ + org.toradex.image.tag.minor="" \ + org.toradex.image.tag.patch="" \ + org.toradex.image.tag.variant="" \ + org.toradex.image.license="MIT" \ + org.toradex.image.arch="linux/arm64/v8" COPY kms-setup.sh /usr/bin/kms-setup.sh diff --git a/debian-docker-images/upstream/tests/graphics-tests/Dockerfile b/debian-docker-images/upstream/tests/graphics-tests/Dockerfile index 91c07df..bb68772 100644 --- a/debian-docker-images/upstream/tests/graphics-tests/Dockerfile +++ b/debian-docker-images/upstream/tests/graphics-tests/Dockerfile @@ -1,11 +1,29 @@ # Copyright (c) 2019-2023 Toradex AG # SPDX-License-Identifier: MIT -ARG BASE_NAME=wayland-base -ARG IMAGE_TAG=3 -ARG DOCKER_REGISTRY=torizon +ARG BASE_IMAGE_REGISTRY +ARG BASE_IMAGE_NAMESPACE +ARG BASE_IMAGE_NAME +ARG BASE_IMAGE_TAG -FROM $DOCKER_REGISTRY/torizon/$BASE_NAME:$IMAGE_TAG AS base +FROM $BASE_IMAGE_REGISTRY/$BASE_IMAGE_NAMESPACE/$BASE_IMAGE_NAME:$BASE_IMAGE_TAG + +LABEL org.toradex.image.base.registry="docker.io" \ + org.toradex.image.base.namespace="torizon" \ + org.toradex.image.base.name="wayland-base" \ + org.toradex.image.base.tag.major="rc" \ + org.toradex.image.base.tag.minor="" \ + org.toradex.image.base.tag.patch="" \ + org.toradex.image.base.tag.variant="" \ + org.toradex.image.registry="docker.io" \ + org.toradex.image.namespace="torizon" \ + org.toradex.image.name="graphics-tests" \ + org.toradex.image.tag.major="rc" \ + org.toradex.image.tag.minor="" \ + org.toradex.image.tag.patch="" \ + org.toradex.image.tag.variant="" \ + org.toradex.image.license="MIT" \ + org.toradex.image.arch="linux/amd64,linux/arm64/v8,linux/arm/v7" RUN apt-get -y update && apt-get install -y --no-install-recommends \ clinfo \ diff --git a/debian-docker-images/upstream/wayland-base/Dockerfile b/debian-docker-images/upstream/wayland-base/Dockerfile index 574c028..58cd4d4 100644 --- a/debian-docker-images/upstream/wayland-base/Dockerfile +++ b/debian-docker-images/upstream/wayland-base/Dockerfile @@ -1,10 +1,29 @@ # Copyright (c) 2019-2023 Toradex AG # SPDX-License-Identifier: MIT -ARG BASE_NAME=debian -ARG IMAGE_TAG=3-bookworm -ARG DOCKER_REGISTRY=torizon -FROM $DOCKER_REGISTRY/torizon/$BASE_NAME:$IMAGE_TAG AS base +ARG BASE_IMAGE_REGISTRY +ARG BASE_IMAGE_NAMESPACE +ARG BASE_IMAGE_NAME +ARG BASE_IMAGE_TAG + +FROM $BASE_IMAGE_REGISTRY/$BASE_IMAGE_NAMESPACE/$BASE_IMAGE_NAME:$BASE_IMAGE_TAG + +LABEL org.toradex.image.base.registry="docker.io" \ + org.toradex.image.base.namespace="torizon" \ + org.toradex.image.base.name="debian" \ + org.toradex.image.base.tag.major="rc" \ + org.toradex.image.base.tag.minor="" \ + org.toradex.image.base.tag.patch="" \ + org.toradex.image.base.tag.variant="bookworm" \ + org.toradex.image.registry="docker.io" \ + org.toradex.image.namespace="torizon" \ + org.toradex.image.name="wayland-base" \ + org.toradex.image.tag.major="rc" \ + org.toradex.image.tag.minor="" \ + org.toradex.image.tag.patch="" \ + org.toradex.image.tag.variant="" \ + org.toradex.image.license="MIT" \ + org.toradex.image.arch="linux/amd64,linux/arm64/v8,linux/arm/v7" RUN apt-get -y update && apt-get install -y --no-install-recommends \ apt-utils \ diff --git a/debian-docker-images/upstream/weston-touch-calibrator/Dockerfile b/debian-docker-images/upstream/weston-touch-calibrator/Dockerfile index ec384a2..2013d1b 100644 --- a/debian-docker-images/upstream/weston-touch-calibrator/Dockerfile +++ b/debian-docker-images/upstream/weston-touch-calibrator/Dockerfile @@ -1,10 +1,29 @@ # Copyright (c) 2019-2023 Toradex AG # SPDX-License-Identifier: MIT -ARG BASE_NAME=weston -ARG IMAGE_TAG=3 -ARG DOCKER_REGISTRY=torizon -FROM $DOCKER_REGISTRY/torizon/$BASE_NAME:$IMAGE_TAG AS base +ARG BASE_IMAGE_REGISTRY +ARG BASE_IMAGE_NAMESPACE +ARG BASE_IMAGE_NAME +ARG BASE_IMAGE_TAG + +FROM $BASE_IMAGE_REGISTRY/$BASE_IMAGE_NAMESPACE/$BASE_IMAGE_NAME:$BASE_IMAGE_TAG + +LABEL org.toradex.image.base.registry="docker.io" \ + org.toradex.image.base.namespace="torizon" \ + org.toradex.image.base.name="weston" \ + org.toradex.image.base.tag.major="rc" \ + org.toradex.image.base.tag.minor="" \ + org.toradex.image.base.tag.patch="" \ + org.toradex.image.base.tag.variant="bookworm" \ + org.toradex.image.registry="docker.io" \ + org.toradex.image.namespace="torizon" \ + org.toradex.image.name="weston-touch-calibrator" \ + org.toradex.image.tag.major="rc" \ + org.toradex.image.tag.minor="" \ + org.toradex.image.tag.patch="" \ + org.toradex.image.tag.variant="" \ + org.toradex.image.license="MIT" \ + org.toradex.image.arch="linux/amd64,linux/arm64/v8,linux/arm/v7" COPY entry.sh /usr/bin/ RUN mkdir -p /etc/xdg/weston/ diff --git a/debian-docker-images/upstream/weston/Dockerfile b/debian-docker-images/upstream/weston/Dockerfile index f839289..82b083e 100644 --- a/debian-docker-images/upstream/weston/Dockerfile +++ b/debian-docker-images/upstream/weston/Dockerfile @@ -1,10 +1,29 @@ # Copyright (c) 2019-2023 Toradex AG # SPDX-License-Identifier: MIT -ARG BASE_NAME=wayland-base -ARG IMAGE_TAG=3 -ARG DOCKER_REGISTRY=docker.io -FROM $DOCKER_REGISTRY/torizon/$BASE_NAME:$IMAGE_TAG AS base +ARG BASE_IMAGE_REGISTRY +ARG BASE_IMAGE_NAMESPACE +ARG BASE_IMAGE_NAME +ARG BASE_IMAGE_TAG + +FROM $BASE_IMAGE_REGISTRY/$BASE_IMAGE_NAMESPACE/$BASE_IMAGE_NAME:$BASE_IMAGE_TAG + +LABEL org.toradex.image.base.registry="docker.io" \ + org.toradex.image.base.namespace="torizon" \ + org.toradex.image.base.name="wayland-base" \ + org.toradex.image.base.tag.major="rc" \ + org.toradex.image.base.tag.minor="" \ + org.toradex.image.base.tag.patch="" \ + org.toradex.image.base.tag.variant="bookworm" \ + org.toradex.image.registry="docker.io" \ + org.toradex.image.namespace="torizon" \ + org.toradex.image.name="weston" \ + org.toradex.image.tag.major="rc" \ + org.toradex.image.tag.minor="" \ + org.toradex.image.tag.patch="" \ + org.toradex.image.tag.variant="" \ + org.toradex.image.license="MIT" \ + org.toradex.image.arch="linux/amd64,linux/arm64/v8,linux/arm/v7" # Install the weston compositor. RUN apt-get -y update && apt-get install -y --no-install-recommends \ diff --git a/tmp b/tmp new file mode 100644 index 0000000..2884d27 --- /dev/null +++ b/tmp @@ -0,0 +1,22 @@ + - docker buildx build --progress=plain --sbom=true ${PUSH_TO_REGISTRY} ${PLATFORM_BUILD_ARM_V7} ${PLATFORM_BUILD_ARM_V8} ${PLATFORM_BUILD_AMD64} + --build-arg CROSS_COMPILER_TARGET_ARCH=${CROSS_COMPILER_TARGET_ARCH} + --build-arg DOCKER_REGISTRY=${TORADEX_INTERNAL_DOCKERHUB_CACHE} + --build-arg BASE_NAME=${BASE_NAME} + --build-arg DEBIAN_BASE_IMAGE=${DEBIAN_BASE_IMAGE} + --build-arg IMAGE_TAG=${DOCKER_BASE_TAG} + --build-arg ADD_TORADEX_REPOSITORY=${ADD_TORADEX_REPOSITORY} + --build-arg ACCEPT_FSL_EULA=${ACCEPT_FSL_EULA} + --build-arg QT5_EXAMPLES_DEBIAN=${QT5_EXAMPLES_DEBIAN} + --build-arg TORADEX_SNAPSHOT=${TORADEX_SNAPSHOT} + --build-arg BASE_NAME_DEBUG=${BASE_NAME_DEBUG} + --build-arg DOTNET_BASE_IMAGE_TAG=${DEBIAN_MAJOR}${RELEASE_APPEND} + --build-arg DEBIAN_BASE_IMAGE_TAG=${DEBIAN_BASE_IMAGE} + --build-arg DOTNET_RUNTIME=${DOTNET_RUNTIME} + --build-arg DOTNET_VERSION=${DOTNET_VERSION} + --build-arg DOTNET_DEBUGGER_RELEASE=${DOTNET_DEBUGGER_RELEASE} + --build-arg BASE_TAG_WAYLAND=${DEBIAN_MAJOR} + --build-arg BASE_NAME_WAYLAND=${BASE_NAME_WAYLAND} + ${DOCKER_NO_CACHE:+--no-cache} + -f ${DOCKERFILE_FOLDER}Dockerfile + -t ${DOCKERHUB_NAMESPACE}/${IMAGE_NAME}:${IMAGE_TAG} + ${DOCKERFILE_FOLDER}