Page History
Table of Contents |
---|
Resources
Docker Image Source and Tutorial
https://dspace-labs.github.comio/DSpace-Labs/DSpace-Docker-Images/
This repository contains an issue list of enhancement ideas.
...
Next Steps
Request agenda time on the July 25 Developer meeting to discuss next steps
...
- master
- dspace-6_x
- dspace-5_x
- dspace-4_x
- Note: determine if our plans will require paid dockerhub features
...
Open Issues
Issue 1 - Docker Build from GitHub source
Currently, our Docker images pull code from GitHub within the Dockerfile.
The Docker build command takes a git url as a parameter. See https://docs.docker.com/engine/reference/commandline/build/
Determine if the image builds can be simplified by passing the source code to Docker build.
Issue 2 - Docker Image Build Automation
Automate the creation of DSpace images as the DSpace/DSpace and DSpace/DSpace-Anuglar source code changes.
Option 1 - Create an Automated Build Trigger on Docker Hub
DockerHub allows you to configure builds based on source branches for a repository.
This is a supported solution.
Description
- Each time one of the supported branches of DSpace is updated, update an image to Docker Hub.
- Each time a release tag is created on GitHub, create a new image on Docker Hub.
- It is unclear if images could be generated for each PR
Repo | Branch/tag | Image Name | Note |
---|---|---|---|
DSpace | dspace-4_x | dspace/dspace:dspace-4_x | Updated on each merge |
dspace-5_x | dspace/dspace:dspace-5_x | Updated on each merge | |
dspace-6_x | dspace/dspace:dspace-6_x | Updated on each merge | |
master | dspace/dspace:master | Updated on each merge | |
PRxxxx | This may not be possible to implement | ||
dspace-6.n | dspace/dspace:dspace-6.n | Triggered on the creation of a new tag | |
dspace-5.n | dspace/dspace:dspace-5.n | Triggered on the creation of a new tag | |
dspace-6.n | dspace/dspace:dspace-4.n | Triggered on the creation of a new tag | |
DSpace-Angular | master | dspace/dspace-angular:master | Updated on each merge |
Requirements
- Move the Dockerfile from DSpace-Labs/DSpace-Docker-Images to DSpace/DSpace.
- Customize 4x branch to look for custom target/install dir.
- Grant DockerHub access to the DSpace GitHub org.
- See https://docs.docker.com/docker-hub/builds/ for an explanation.
- Consider a paid DockerHub account to expedite builds. Otherwise, builds might queue up.
- You can only trigger one build at a time and no more than one every five minutes. If you already have a build pending, or if you recently submitted a build request, Docker ignores new requests.
Option 2 - Add Docker Build Automation to Travis Build
This would likely be a home-grown solution and may not be fully supported.
https://ops.tips/blog/travis-ci-push-docker-image/
Description
- Each time Travis rebuilds a branch, update an image to Docker Hub.
- Each time Travis rebuilds a PR, update an image to Docker Hub
- This may generate a lot of images, but it could simplify testing
- Each time a release tag is created on GitHub, manually build a new image on Docker Hub.
- Unless there is a way to trigger this in travis as well
Repo | Branch/tag | Image Name | Note |
---|---|---|---|
DSpace | dspace-4_x | dspace/dspace:dspace-4_x | Updated on each successful Travis build |
dspace-5_x | dspace/dspace:dspace-5_x | Updated on each successful Travis build | |
dspace-6_x | dspace/dspace:dspace-6_x | Updated on each successful Travis build | |
master | dspace/dspace:master | Updated on each successful Travis build | |
PRxxxx | dspace/dspace:pr-xxxx | Updated on each successful Travis build | |
dspace-6.n | dspace/dspace:dspace-6.n | Manually created? | |
dspace-5.n | dspace/dspace:dspace-5.n | Manually created? | |
dspace-6.n | dspace/dspace:dspace-4.n | Manually created? | |
DSpace-Angular | master | dspace/dspace-angular:master | Updated on each merge |
Requirements
- Relocate the Dockerfile to source repo?
- This may be needed
- Create Docker Hub account for DSpace (user not org). Embed Docker Hub user credentials within Travis.
- Evaluate the performance impact on the Travis build
- Determine any limitations on the number of images that can be pushed to Docker Hub
Issue 3 - Setting guidelines for team permissions on Docker Hub.
Currently, 4 users have admin rights to the DSpace Docker registry.
Consider granting image-specific permissions to particular teams.
Issue 4 - Exploring new opportunities build on DSpace images
The existence of published DSpace images might make it easier to host branch-specific DSpace images to facilitate PR testing and pre-release testing.
Currently, server level command line access is required to build and deploy a PR for testing. This often limits the potential pool of testers to the developer community.
If the deployment of a test environment for a PR could be automated, some user testing of PR's could be performed by repository managers and other users who do not have command line access t server resources.
...