Closed carlomion closed 3 months ago
Enhanced Workflow for Docker Image Creation and Versioning
An improvement to the system handling Docker image creation (a kind of "blueprint" for creating a program) in the continuous integration workflow file (.github/workflows/ci.yml
). This update includes a new step to calculate Docker tags and labels, which helps to properly version and categorize each image.
Simplified Docker Tag Process The old method of setting the Docker image's date tag has now been removed, making the overall process more efficient and less error-prone.
Updated Docker Build and Push method
The process of building (creating from the blueprint) and pushing (sending to a repository where it can be shared with others) the Docker image has been greatly improved. It now uses a trusted and efficient third-party software (docker/build-push-action@v5
).
Optimized Docker Build Commands and Cache Incorporation
Changes have been made to the commands that build the Docker image in the file 4.4/Dockerfile
. These commands now feature improved caching. Caching accelerates the build process by reusing previously stored or calculated information rather than recalling or recalculating it.
Streamlined Docker Image with Package Removal
Several packages, which can be viewed as sets of functionalities, were removed from the file 4.4/Dockerfile
. This helps to trim down the Docker image size, increasing its efficiency and reducing the storage space it requires.
Improved Docker Image Cleanup The way cleaning up after building the Docker image works has been revised, making it more effective and efficient.
Again, this is a really nice PR. Lets see if the build succeeds this time.
Following the introduction of the Dockerfile RUN cache in #554 , the build has started failing, likely due to concurrent access to the same cached folder during the multi-architecture build process: https://github.com/mediagis/nominatim-docker/actions/runs/8722047757
This PR does the following:
docker/metadata-action@v5
to define the Docker label and tag for the imagedocker build
is always done in the CI pipeline, so that the arm64 build is also built, but only pushed to Dockerhub if on themaster
branch