-
Notifications
You must be signed in to change notification settings - Fork 40
Update: Docker Image
Backdrop CMS images are hosted at Docker Hub .
This document describes the process of creating a new image, which happens whenever we have a new release of Backdrop CMS.
- The process uses an intermediary repository Backdrop Docker, that assembles all the details about the new release.
- We create a pull request at the Docker library Repository.
- When the Docker Library pull request is merged, the image is created from the details at Backdrop Docker, and posted at Docker Hub.
- After the new image is posted, we test the newly created image to confirm it is working as intended.
- Update the Backdrop Docker repository
- Create a PR to update the Docker repository
1. Update the Backdrop Docker Image
- File an issue in the Backdrop Docker issue queue to track the work on this update.
You will need 2 things:
- The release tag of the latest stable Backdrop CMS version (which is usually the same as the Backdrop version).
- The md5 hash of the latest stable Backdrop CMS release:
- 2.1 Download the "Source code" .tar.gz file - NOT the .zip file (it is usually the last item in the list of links bellow the "Assets" section).
- 2.1 Run
md5 {filename}.tar.gz
ormd5sum {filename}.tar.gz
depending on your operating system - 2.2 Make a note of the generated md5 hash
- Update the 2 dockerfiles:
- Update
1/apache/Dockerfile
:- Update
ENV BACKDROP_VERSION
to the new release tag (point 1 above) - Update
ENV BACKDROP_MD5
to the new md5 hash (point 2.2 above)
- Update
- Update
1/fpm/Dockerfile
:- Update
ENV BACKDROP_VERSION
to the new release tag (point 1 above) - Update
ENV BACKDROP_MD5
to the new md5 hash (point 2.2 above)
- Update
- Update the README.md
- Update the version numbers in the "Supported tags and respective Dockerfile links" section at the top
- Confirm the rest of the file is accurate
- Update
- Create a Pull Request with all of the changes listed above
- If Travis tests pass -- Merge the pull request.
- Make a note of the latest commit hash after the pull request has been merged. You will need it for updating the official docker-library (see next section)
- A PR needs to be submitted against the official docker-images repo
-
Update the 2 lines starting with
Tags:
, to reflect the latest version of Backdrop. For example, change from this:Tags: 1.29.1, 1.29, 1, 1.29.1-apache, 1.29-apache, 1-apache, apache, latest
...to this:
Tags: 1.29.2, 1.29, 1, 1.29.2-apache, 1.29-apache, 1-apache, apache, latest
-
Update the git commit:
- Make sure that the PR you have filed in the previous section has been committed -> Head to the commits list of the https://github.com/backdrop-ops/backdrop-docker repo. -> Click on the latest commit which updated the dockerfiles -> the full commit hash should be located at the top-right of the page, below the "Browse files" button.
- Use the commit hash from the previous step, to update the 2 lines starting with
GitCommit:
In order to help the Docker Library maintainers review and merge the PR, make sure to add as much useful info in the PR summary, such as:
- a link to the latest release of Backdrop
- a link to the latest commit in https://github.com/backdrop-ops/backdrop-docker/commits/master
Once the pull request is submitted, it will run through automated code testing. If the code passes automated review, the pull request will be reviewed by the code owners. Any issues with the pull request will need to be resolved. When the pull request is approved, you will get notification, and the new image will be become available.
The final step of the process is to confirm the image is working as intended.
- Create a new local docker project
-
mkdir test-project && cd test-project
- Create a docker-compose.yml file in the project folder
-
services:
backdrop:
image: backdrop:latest
ports:
- 8080:80
environment:
BACKDROP_DB_HOST: db
BACKDROP_DB_USER: backdrop
BACKDROP_DB_PASSWORD: backdrop
db:
image: mysql
environment:
MYSQL_USER: backdrop
MYSQL_PASSWORD: backdrop
MYSQL_ALLOW_EMPTY_PASSWORD: 'yes'
MYSQL_DATABASE: backdrop
- Start the project:
docker composer up
- Once the project is loaded, visit the project page, and confirm the latest backdrop release is running:
http:/localhost:8080/admin/reports/status
Once testing is complete, close the initial issue created in the Backdrop Docker issue queue.