[
https://issues.apache.org/jira/browse/KNOX-3256?focusedWorklogId=1021522&page=com.atlassian.jira.plugin.system.issuetabpanels:worklog-tabpanel#worklog-1021522
]
ASF GitHub Bot logged work on KNOX-3256:
----------------------------------------
Author: ASF GitHub Bot
Created on: 21/May/26 14:59
Start Date: 21/May/26 14:59
Worklog Time Spent: 10m
Work Description: smolnar82 opened a new pull request, #1239:
URL: https://github.com/apache/knox/pull/1239
[KNOX-3256](https://issues.apache.org/jira/browse/KNOX-3256) - Refactor
Docker build to use local Maven artifacts and unify CI/Dev workflows
## What changes were proposed in this pull request?
This PR refactors the Docker build process used in CI and local development
to be more efficient and unified. Key changes include:
- **Unified Dockerfile**: Refactored .`github/workflows/build/Dockerfile`
to copy pre-built tarballs directly from the local `target/ `directory. This
eliminates the need for external staging directories.
- **Removed Redundancy**: Deleted `Dockerfile.local` which previously
cloned the repository and built Knox from scratch inside the container. This
was redundant and slow compared to using existing local Maven artifacts.
- **Simplified Docker Compose**: Updated `docker-compose.yml` to use the
project root as the build context, allowing the Dockerfile to access the
`target/` directory directly.
- **Streamlined CI Workflow**: Simplified `.github/workflows/tests.yml`
by removing manual artifact extraction steps and environment variables that
were only needed for the old cloning-based build.
## How was this patch tested?
1. Built Knox locally then ran integration tests:
```
$ docker compose -f ./.github/workflows/compose/docker-compose.yml up
--exit-code-from tests tests
[+] up 0/1
⠹ Image apache/knox-dev:local-local-local Pulling
1.3s
[+] Building 27.2s (25/25) FINISHED
=> [internal] load local bake definitions
0.0s
=> => reading from stdin 557B
0.0s
=> [internal] load build definition from Dockerfile
0.0s
=> => transferring dockerfile: 2.50kB
0.0s
=> WARN: MaintainerDeprecated: Maintainer instruction is deprecated in
favor of using label (line 18)
0.0s
=> [internal] load metadata for docker.io/library/eclipse-temurin:17-jre
1.8s
=> [auth] library/eclipse-temurin:pull token for registry-1.docker.io
0.0s
=> [internal] load .dockerignore
0.0s
=> => transferring context: 2B
0.0s
=> [ 1/17] FROM
docker.io/library/eclipse-temurin:17-jre@sha256:0d79988c68791ce864fe39d149ab1dc84f680539dca77ee7f6f3b041ad7f2f43
16.4s
=> => resolve
docker.io/library/eclipse-temurin:17-jre@sha256:0d79988c68791ce864fe39d149ab1dc84f680539dca77ee7f6f3b041ad7f2f43
0.0s
=> =>
sha256:fc5566c2753f8e65c568fbef704ce927af2ec22b4bd3313943e4db62c4214b9d 2.28kB
/ 2.28kB
0.2s
=> =>
sha256:c3b320b98b35acdcde435ea81cd7a8b024c50b60c2a1ffcce429595e407cbb0c 159B /
159B
0.3s
=> =>
sha256:01a1c52a6a29119698a398dbf21e709d3c619ee04afb766ea7673be285493c69 47.05MB
/ 47.05MB
11.5s
=> =>
sha256:38e7f4c43425a263721b626e065e74713ed577764840ed0c7cf36f4e77606348 19.98MB
/ 19.98MB
10.5s
=> =>
sha256:4a7720058461eb4ae40ed203b9874ab3248bd34ffb9948193e99245229fdbd6f 390B /
390B
0.4s
=> =>
sha256:2113f8d7eb32748b14581824c1b94cea9ed9a08456312a2e94eddd522d01b927 40.73MB
/ 40.73MB
15.0s
=> => extracting
sha256:2113f8d7eb32748b14581824c1b94cea9ed9a08456312a2e94eddd522d01b927
0.5s
=> => extracting
sha256:4a7720058461eb4ae40ed203b9874ab3248bd34ffb9948193e99245229fdbd6f
0.0s
=> => extracting
sha256:38e7f4c43425a263721b626e065e74713ed577764840ed0c7cf36f4e77606348
0.2s
=> => extracting
sha256:01a1c52a6a29119698a398dbf21e709d3c619ee04afb766ea7673be285493c69
0.4s
=> => extracting
sha256:c3b320b98b35acdcde435ea81cd7a8b024c50b60c2a1ffcce429595e407cbb0c
0.0s
=> => extracting
sha256:fc5566c2753f8e65c568fbef704ce927af2ec22b4bd3313943e4db62c4214b9d
0.0s
=> [internal] load build context
3.5s
=> => transferring context: 207.00MB
3.5s
=> [ 2/17] RUN useradd -ms /bin/bash gateway
0.2s
=> [ 3/17] RUN mkdir -p /tmp/knox-artifacts /tmp/knoxshell-artifacts
/knox-runtime /knoxshell /knox-runtime/knoxshell
0.1s
=> [ 4/17] COPY target/*/knox-*.tar.gz /tmp/knox-artifacts/
0.1s
=> [ 5/17] COPY target/*/knoxshell-*.tar.gz /tmp/knoxshell-artifacts/
0.0s
=> [ 6/17] RUN tar -xvzf /tmp/knox-artifacts/knox-*.tar.gz -C
/tmp/knox-artifacts/ && tar -xvzf
/tmp/knoxshell-artifacts/knoxshell-*.tar.gz -C /tmp/knoxshell-artifacts/ &&
mv /tmp/knox-artifacts/knox-*/* /knox-runtime/ && mv 1.0s
=> [ 7/17] ADD .github/workflows/build/master
/knox-runtime/data/security/master
0.0s
=> [ 8/17] ADD .github/workflows/build/gateway-site.xml
/knox-runtime/conf/gateway-site.xml
0.0s
=> [ 9/17] ADD .github/workflows/build/conf/topologies/knoxtoken.xml
/knox-runtime/conf/topologies/knoxtoken.xml
0.0s
=> [10/17] ADD .github/workflows/build/conf/topologies/health.xml
/knox-runtime/conf/topologies/health.xml
0.0s
=> [11/17] ADD .github/workflows/build/conf/topologies/knoxldap.xml
/knox-runtime/conf/topologies/knoxldap.xml
0.0s
=> [12/17] ADD .github/workflows/build/conf/topologies/remoteauth.xml
/knox-runtime/conf/topologies/remoteauth.xml
0.0s
=> [13/17] RUN chown -R gateway /knox-runtime/
1.1s
=> [14/17] ADD .github/workflows/build/ldap.sh /ldap.sh
0.0s
=> [15/17] ADD .github/workflows/build/gateway.sh /gateway.sh
0.0s
=> [16/17] RUN chmod +x /ldap.sh
0.1s
=> [17/17] RUN chmod +x /gateway.sh
0.1s
=> exporting to image
5.8s
=> => exporting layers
3.8s
=> => exporting manifest
sha256:1db7f1e6795f015e9a76f07bff25dac20fe22d1c08003ed40b262957528623b9
0.0s
=> => exporting config
sha256:64efa91dda3f0d5d142a96a65553ebdd1a71e446b0a528670b56c4ceac91015a
0.0s
=> => exporting attestation manifest
sha256:d411e10eca6061a72127675bf313d1e9ffbed6dc389e1dd6e3a1f26c9ea231a9
0.0s
=> => exporting manifest list
sha256:c7f342934fd523f54783c48b110a67a1d8004aa36a628c43f1ccac2400cff4b1
0.0s
=> => naming to docker.io/apache/knox-dev:local-local-local
0.0s
[+] up 6/6acking to docker.io/apache/knox-dev:local-local-local
1.9s
✔ Image apache/knox-dev:local-local-local Built
28.6s
✔ Network compose_default Created
0.0s
✔ Container compose-knox-dev-1 Created
0.1s
✔ Container compose-ldap-1 Created
0.0s
✔ Container compose-knox-1 Created
0.1s
✔ Container compose-tests-1 Created
0.1s
Attaching to tests-1
tests-1 | Collecting requests==2.32.4
tests-1 | Downloading requests-2.32.4-py3-none-any.whl (64 kB)
tests-1 | ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 64.8/64.8 kB 1.4
MB/s eta 0:00:00
tests-1 | Collecting pytest==8.3.4
tests-1 | Downloading pytest-8.3.4-py3-none-any.whl (343 kB)
tests-1 | ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 343.1/343.1 kB 4.2
MB/s eta 0:00:00
tests-1 | Collecting idna<4,>=2.5
tests-1 | Downloading idna-3.15-py3-none-any.whl (72 kB)
tests-1 | ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 72.3/72.3 kB 8.3
MB/s eta 0:00:00
tests-1 | Collecting certifi>=2017.4.17
tests-1 | Downloading certifi-2026.5.20-py3-none-any.whl (134 kB)
tests-1 | ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 134.1/134.1 kB 5.1
MB/s eta 0:00:00
tests-1 | Collecting charset_normalizer<4,>=2
tests-1 | Downloading
charset_normalizer-3.4.7-cp39-cp39-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
(200 kB)
tests-1 | ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 200.6/200.6 kB 7.8
MB/s eta 0:00:00
tests-1 | Collecting urllib3<3,>=1.21.1
tests-1 | Downloading urllib3-2.6.3-py3-none-any.whl (131 kB)
tests-1 | ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 131.6/131.6 kB 37.5
MB/s eta 0:00:00
tests-1 | Collecting packaging
tests-1 | Downloading packaging-26.2-py3-none-any.whl (100 kB)
tests-1 | ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 100.2/100.2 kB 30.2
MB/s eta 0:00:00
tests-1 | Collecting exceptiongroup>=1.0.0rc8
tests-1 | Downloading exceptiongroup-1.3.1-py3-none-any.whl (16 kB)
tests-1 | Collecting pluggy<2,>=1.5
tests-1 | Downloading pluggy-1.6.0-py3-none-any.whl (20 kB)
tests-1 | Collecting iniconfig
tests-1 | Downloading iniconfig-2.1.0-py3-none-any.whl (6.0 kB)
tests-1 | Collecting tomli>=1
tests-1 | Downloading tomli-2.4.1-py3-none-any.whl (14 kB)
tests-1 | Collecting typing-extensions>=4.6.0
tests-1 | Downloading typing_extensions-4.15.0-py3-none-any.whl (44 kB)
tests-1 | ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 44.6/44.6 kB 10.1
MB/s eta 0:00:00
tests-1 | Installing collected packages: urllib3, typing-extensions, tomli,
pluggy, packaging, iniconfig, idna, charset_normalizer, certifi, requests,
exceptiongroup, pytest
tests-1 | Successfully installed certifi-2026.5.20 charset_normalizer-3.4.7
exceptiongroup-1.3.1 idna-3.15 iniconfig-2.1.0 packaging-26.2 pluggy-1.6.0
pytest-8.3.4 requests-2.32.4 tomli-2.4.1 typing-extensions-4.15.0 urllib3-2.6.3
tests-1 | WARNING: Running pip as the 'root' user can result in broken
permissions and conflicting behaviour with the system package manager. It is
recommended to use a virtual environment instead:
https://pip.pypa.io/warnings/venv
tests-1 |
tests-1 | [notice] A new release of pip is available: 23.0.1 -> 26.0.1
tests-1 | [notice] To update, run: pip install --upgrade pip
tests-1 | Waiting for knox...
tests-1 | ============================= test session starts
==============================
tests-1 | platform linux
Issue Time Tracking
-------------------
Worklog Id: (was: 1021522)
Remaining Estimate: 0h
Time Spent: 10m
> Unecessary knox-dev:master image build during integration tests
> ---------------------------------------------------------------
>
> Key: KNOX-3256
> URL: https://issues.apache.org/jira/browse/KNOX-3256
> Project: Apache Knox
> Issue Type: Improvement
> Components: Tests
> Affects Versions: 2.1.0
> Reporter: Tamás Hanicz
> Assignee: Sandor Molnar
> Priority: Minor
> Time Spent: 10m
> Remaining Estimate: 0h
>
> knox-dev:master image build might be unnecessary during integration tests.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)
