3.0.0
Version 3.0.0 Changelog
- plugins will now persist in the
/octoprint
volume (see #71 and #44) - Settings unique to docker (such as restarting octoprint and webcam configs), are now pre-configured (implemented in #132)
- Backup/restore will now work with the docker image (fixed #92 via #135)
- the creation of
edge
,canary
, andbleeding
tags. See README for details on how to use these tags
Breaking changes
PR #135 introduced a change that will not affect most users, but may be a breaking change for existing users that are using a volume mounting strategy other than the recommended strategy. Details follow:
/octoprint/octoprint
and/octoprint/plugins
folders are now explicitly created during docker build- octoprint service basedir is now
/octoprint/octoprint
(was previously/octoprint
) - the recommended mount path for the
config-editor
container to has been changed tooctoprint:/octoprint
. See updated examples and usage info indocker-compose.yml
andREADME
.
As a result of the breaking changes in 3.0.0, we have introduced a script that will attempt to detect and auto-migrate filesystem structures from previous octoprint-docker release versions to the current version, by utilizing an optional environment variable you can set
This feature was impossible to test for all condidtions, and as such is defaulted to false. We highly recommend you use the OctoPrint backup feature, or use this docker based method of backing up your container volume before attempting auto-migration. To attempt auto-migration, set a container environment variable of AUTOMIGRATE=true.
Due to the changes of the folder structure below the /octoprint
directory, where before the root context of the volume mount looked like this:
/octoprint
├── config.backup
├── config.yaml
├── data
│ ├── announcements
│ ├── appkeys
│ ├── backup
│ ├── pluginmanager
│ ├── preemptive_cache_config.yaml
│ └── softwareupdate
├── generated
│ └── webassets
├── logs
│ ├── octoprint.log
│ ├── plugin_bedlevelvisualizer_debug.log
│ ├── plugin_pluginmanager_console.log
│ └── plugin_softwareupdate_console.log
├── plugins
│ ├── bin
│ └── lib
├── printerProfiles
│ └── _default.profile
├── scripts
├── slicingProfiles
├── timelapse
│ └── tmp
├── translations
├── uploads
├── virtualSd
└── watched
It will now look like this:
/octoprint
├── octoprint
│ ├── config.backup
│ ├── config.yaml
│ ├── data
│ ├── generated
│ ├── logs
│ ├── plugins
│ ├── printerProfiles
│ ├── scripts
│ ├── slicingProfiles
│ ├── timelapse
│ ├── translations
│ ├── uploads
│ ├── virtualSd
│ └── watched
└── plugins
The /octoprint/plugins
directory is the python libraries path, and /octoprint/octoprint/plugins
is the path for plugin data and configuration. Prior to this change, both of these things existed in the /octoprint/plugins
folder, polluting it's purpose.
This new method will allow savvy users to create distinct volumes for plugin binaries and octoprint configuration data, giving them more ability to selectively control how state and memory consumption are utilized in their octoprint image usage/distribution strategies.