diff --git a/DOCKER_HUB.md b/DOCKER_HUB.md deleted file mode 100644 index d3b3e68..0000000 --- a/DOCKER_HUB.md +++ /dev/null @@ -1,63 +0,0 @@ -# cloud.docker.com Configuration - -The automatic build is configured in cloud.docker.com. - -The following build configuration is expected: - -```yaml -Source Repository: github.com/netbox-community/netbox-docker -Build Location: Build on Docker Hub's infrastructure -Autotest: Internal and External Pull Requests -Repository Links: Enable for Base Image -Build Rules: -- Source Type: Branch - Source: release - Docker Tag: branches - Dockerfile location: Dockerfile - Build Context: / - Autobuild: on - Build Caching: on -- Source Type: Branch - Source: release - Docker Tag: prerelease - Dockerfile location: Dockerfile - Build Context: / - Autobuild: on - Build Caching: on -- Source Type: Branch - Source: release - Docker Tag: release - Dockerfile location: Dockerfile - Build Context: / - Autobuild: on - Build Caching: on -Build Environment Variables: -# Create an app on Github and use it's OATH credentials here -- Key: GITHUB_OAUTH_CLIENT_ID - Value: -- Key: GITHUB_OAUTH_CLIENT_SECRET - Value: -Build Triggers: -- Name: Cron Trigger - Trigger URL: -# Use this trigger in combination with e.g. https://cron-job.org in order to regularly schedule builds -``` - -## Background Knowledge - -The build system of cloud.docker.com is not made for this kind of project. -But we found a way to make it work, and this is how: - -1. The docker hub build system [allows to overwrite the scripts that get executed - for `build`, `test` and `push`](overwrite). See `/hooks/*`. -2. Shared functionality of the scripts `build`, `test` and `push` is extracted to `/hooks/common`. -3. The `build` script runs `run_build()` from `/hooks/common`. - This triggers either `/build-branches.sh`, `/build-latest.sh` or directly `/build.sh`. -4. The `test` script just invokes `docker-compose` commands. -5. The `push` script runs `run_build()` from `hooks/common` with a `--push-only` flag. - This causes the `build.sh` script to not re-build the Docker image, but just the just built image. - -The _Docker Tag_ configuration setting (`$DOCKER_TAG`) is only used to select the type (_release_, _prerelease_, _branches_) of the build in `hooks/common`. -Because it has a different meaning in all the other build scripts, it is `unset` after it has served it's purpose. - -[overwrite]: https://docs.docker.com/docker-hub/builds/advanced/#override-build-test-or-push-commands diff --git a/README.md b/README.md index 2f48b4e..5f12bfc 100644 --- a/README.md +++ b/README.md @@ -124,31 +124,34 @@ docker-compose up -d From time to time it might become necessary to re-engineer the structure of this setup. Things like the `docker-compose.yml` file or your Kubernetes or OpenShift configurations have to be adjusted as a consequence. + Since November 2019 each image built from this repo contains a `org.opencontainers.image.version` label. (The images contained labels since April 2018, although in November 2019 the labels' names changed.) -You can check the label of your local image by running `docker inspect netboxcommunity/netbox:v2.7.1 --format "{{json .ContainerConfig.Labels}}"`. +You can check the label of your local image by running `docker inspect netboxcommunity/netbox:v2.7.1 --format "{{json .Config.Labels}}"`. Please read [the release notes][releases] carefully when updating to a new image version. [releases]: https://github.com/netbox-community/netbox-docker/releases -## Rebuilding & Publishing images +## Rebuilding the Image `./build.sh` can be used to rebuild the Docker image. See `./build.sh --help` for more information. -### Publishing Docker Images +For more details on custom builds [consult our wiki][netbox-docker-wiki-build]. -New Docker images are built and published every 24h on the [Docker Build Infrastructure][docker-build-infra]. -`DOCKER_HUB.md` contains more information about the build infrastructure. +[netbox-docker-wiki-build]: https://github.com/netbox-community/netbox-docker/wiki/Build -[docker-build-infra]: https://hub.docker.com/r/netboxcommunity/netbox/builds/ +### Pre-made Docker Images + +New Docker images are built and published every 24h. ## Tests -To run the tests coming with Netbox, use the `docker-compose.yml` file as such: +We have a test script. +It runs Netbox's own unit tests and ensures that all initializers work: ```bash -docker-compose run netbox ./manage.py test +IMAGE=netboxcommunity/netbox:latest ./test.sh ``` ## About