Heptapod official development image
1.4K
This image is intended as the main working tool for developers, makin life easier for them, without interfering with the main Heptapod image.
It is built from the heptapod_docker_dev directory, which comes with build and launch utilities also listed here.
Note: care must be taken not to introduce functional divergences that would impact testing, and hence mask bugs that developers could introduce.
hg-git etc.) are at
the head of their main branch at the time of build.less)heptapod branch.heptapod_docker_dev/heptapod_revisions.json (contains instructions)At the time of this writing, using the present image is the only way to work on Heptapod in practice.
topic and evolve extensions with the following HGRC snippet:[extensions]
evolve =
topic =
Heptapod follows the default Heptapod workflow, see the FAQ and the related Octobus blog post
Like GitLab, Heptapod is made of several components, which fall in several categories:
gitlab-ce parent image. Example at the time of
this writing: gitlab-shell.heptapod branch while the default branch is used to
track upstream GitLab changes.hg-git.You can get an up to date list of forked and specific components, and URLs to clone them by reading the heptapod_revisions.json file.
~/heptapodhg clone -b heptapod https://mirror.octobus.net/heptapod/omnibus ~/heptapod/omnibushg clone -b heptapod https://mirror.octobus.net/heptapod/heptapod ~/heptapod/heptapod-railsHaving all the sources in a single directory makes it easy to expose them inside the Docker container (see "Building and Running").
The Omnibus Heptapod repository has a build-launch script meant for this
in its heptapod_docker_dev subdirectory.
It will automatically build the development image, setup appropriate bind mounts for Docker volumes and your sources. If its defaults don't suit you, it is fully inspectable and configurable.
All examples below are from the Omnibus clone (see "Source repositories" above)
heptapod_docker_dev/build-launch --simulate
heptapod_docker_dev/build-launch --help
Assuming the volumes configuration suits you:
heptapod_docker_dev/build-launch
This will mount the parent directory of your Omnibus clone at
/home/heptapod in the container (see "Recommended developer setup" above).
The container is setup by default for our automated functional tests.
This is handy for pre-release tests:
heptapod_docker_dev/build-launch --image-tag octobus/heptapod --no-build
This is how Heptapod project maintainers do it:
heptapod_docker_dev/build-launch --build-base-image --no-run --push
This assumes that we use the recommended
developer setup, and the build-launch default options.
This means in particular that the container name is heptapod and that
our working clone of the
Rails application
is available from /home/heptapod/heptapod-rails in the container.
my-workstation-~ $ docker exec -it heptapod /bin/bash
# cd /opt/gitlab/embedded/service/gitlab-rails
# hg pull /home/heptapod/heptapod-rails
# hg up REVISION
# gitlab-ctl restart
This example assumes you have no prior local changes in the container, and applies all changes from your work station source repository.
my-workstation-~ $ docker exec -it heptapod /bin/bash
# cd /opt/gitlab/embedded/service/gitlab-rails
# hg -R /home/heptapod/heptapod-rails diff | patch -p1
# gitlab-ctl restart
Content type
Image
Digest
Size
1.6 GB
Last updated
over 6 years ago
docker pull octobus/heptapod-dev