Skip to content
GitLab
Explore
Sign in
Register
Primary navigation
Search or go to…
Project
T
tango
Manage
Activity
Members
Labels
Plan
Issues
Issue boards
Milestones
Iterations
Wiki
Requirements
Jira issues
Open Jira
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Snippets
Locked files
Build
Pipelines
Jobs
Pipeline schedules
Test cases
Artifacts
Deploy
Releases
Package Registry
Container Registry
Model registry
Operate
Environments
Terraform modules
Monitor
Incidents
Analyze
Value stream analytics
Contributor analytics
CI/CD analytics
Repository analytics
Code review analytics
Issue analytics
Insights
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
LOFAR2.0
tango
Commits
4a5cd93b
Commit
4a5cd93b
authored
3 years ago
by
Corné Lukken
Browse files
Options
Downloads
Patches
Plain Diff
L2SS-205
: Update docker image documentation
parent
6d1cfae6
No related branches found
No related tags found
1 merge request
!183
Docker image building & pushing with CI pipeline caching
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
docker-compose/README.md
+23
-10
23 additions, 10 deletions
docker-compose/README.md
with
23 additions
and
10 deletions
docker-compose/README.md
+
23
−
10
View file @
4a5cd93b
...
@@ -25,21 +25,19 @@ https://gitlab.com/gitlab-org/gitlab-foss/-/issues/17861
...
@@ -25,21 +25,19 @@ https://gitlab.com/gitlab-org/gitlab-foss/-/issues/17861
-
Base images
-
Base images
-
Services
-
Services
Devices, are currently bound to the host upon building due to the intrinsics of
Devices, these are detected by changes to the .yml file or directory of the
how environment variables are used. They will have to be rebuild and can not be
respective service inside the docker-compose directory.
pulled from a local registry.
Simulators, Since the source code for simulators is maintained by other teams
Simulators, Since the source code for simulators is maintained by other teams
we can not accurately determine from our repository if the simulator has
we can not accurately determine from our repository if the simulator has
changed. Instead, the images s
hould be
build by the teams their respective CI
changed. Instead, the images
i
s build by the teams their respective CI
pipelines. We
would
simply pull these images as base images.
pipelines. We simply pull these images as base images.
Base images, these are detected by changes to the .env file in the
Base images, these are detected by changes to the .env file in the
docker-compose directory. When changed they will be downloaded from the remote
docker-compose directory. When changed they will be downloaded from the remote
registry and uploaded to our own using matching tags.
registry and uploaded to our own using matching tags.
Services, these are detected by changes to the .yml file or directory of the
Services, same mechanism as devices.
respective service inside the docker-compose directory.
### Setup and maintenance
### Setup and maintenance
...
@@ -50,7 +48,22 @@ docker-compose directory corresponds to one image.
...
@@ -50,7 +48,22 @@ docker-compose directory corresponds to one image.
### Gitlab CI phases
### Gitlab CI phases
Docker images are build and pushed in two stages. First external images are
Docker images are managed in three phases. First is remote image storing, second
downloaded, retagged and pushed to our own registry.
is image building and change detection with finally image pulling.
Remote images are downloaded and stored on the local registry when the .env
file for docker-compose has changes.
Local images are build when either the files in the base context directory
change or if the docker compose file itself has changes. See the gitlab-ci.yml
for how these changes are detected. All local images will be rebuild and tagged
latest when a tagged commit is pushed to master.
Local images download the latest image from the registry as cache unless it is
a tagged commit on master.
`git diff --name-only HEAD~1..HEAD ./`
Finally, the integration test downloads all images from the registry either
tagged with the current pipeline or with latest. Should both tags be unavailable
than the integration test fails. Not all images are needed for the integration
test. See sbin/tag_and_push_docker_image.sh for how these images are
differentiated.
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment