Call for maintainers! Are you experienced with Docker? Are you an OctoPrint enthusiast? Do you have a hour or more of time to spare each week answering questions about octoprint-docker and reviewing PR's? Let us know!
If this sounds like you, join the OctoPrint Discord and message @CHIEFdotJS
in the #dev-docker
channel.
- Pull Requests that are intended to fix a bug should have a related issue. It is acceptable to create the issue
at the time you open the PR.
- Pull Requests that are for fixing typos, updating docs, or adding features/enhancements can be submitted without a related issue
- Pull Requests that add enhancements should have an adequate description, and should make any relevant changes to documentation
- Pull Requests that will result in new images being published must build on all supported architectures (
arm64,arm/v7,amd64
) (see Testing your changes on all architectures) - any documentation should be exclusive to this project, or affect the majority of users/contributors.
- any packages/dependencies added to the image should be available on all supported architectures, AND:
- should be required by the majority of users or plugins OR
- be bundled by OctoPi (try to increase parity with usage docs of OctoPi whenever possible)
Prerequisites:
- docker and its dependencies installed and up to date
- buildx enabled in the docker daemon (experimental features should be true)
Simple test images are built only for the architecture of the machine you are on, using docker-compose.
We have simplified running the docker-compose commands using the Makefile. To build and run the test image, make your changes to the repo, then run:
make build && make up
This will build the image from the main Dockerfile, and stand it up, with the logs running in the terminal. Octoprint will be accessible on http://localhost:53333, and the config-editor will be stood up on http://localhost:8443
Before submitting your changes, you should make sure the image builds on all supported architectures.
Running make test
will check to make sure your machine can build all supported architectures, and then build the image
for all architectures using cache from both your local machine and the latest upstream docker image tag.
If you don't have multi-arch support enabled on your machine, you can run make setup-multi-arch
to add this support.