Skip to content

Docker Run Guide

Cal Heldenbrand edited this page Mar 4, 2023 · 1 revision

Running Bambu Studio from Docker

If you don't run a new enough Linux distro to properly compile and run Bambu studio, you can run everything from within a Docker container that's running Ubuntu 20.

The only thing that's required is:

  • Any Linux distro that can run Docker
  • A non-root user set up with Docker permissions
  • An Internet connection and connection to the printer network
  • At least 12GB of disk space

Build the Image

[me@mypc ~]$ cd BambuStudio
[me@mypc BambuStudio]$ ./DockerBuild.sh
  # Wait a really, really long time

Run the Image!

[me@mypc BambuStudio]$ ./DockerRun.sh
  • Your home directory will be bind mounted inside the container.
  • Bambu Studio will run as the same user ID as your host
  • Load and save files from anywhere within your home directory

Extra Parameters

The DockerRun.sh script takes the same command line arguments that the bambu-studio binary accepts.

[me@mypc BambuStudio]$ ./DockerRun.sh --help
Usage: bambu-studio [ OPTIONS ] [ file.3mf/file.stl ... ]

OPTIONS:
 --debug level       Sets debug logging level. 0:fatal, 1:error, 2:warning, 3:info, 4:debug, 5:trace
 --load-filaments "filament1.json;filament2.json;..."
                     Load filament settings from the specified file list
 --load-settings "setting1.json;setting2.json"
                     Load process/machine settings from the specified file
 --outputdir dir     Output directory for the exported files.
 --arrange option    Arrange options: 0-disable, 1-enable, others-auto
 --convert-unit      Convert the units of model
 --orient            Orient the model
 --scale factor      Scale the model by a float factor
 --export-3mf filename.3mf
                     Export project as 3MF.
 --export-settings settings.json
                     Export settings to a file.
 --export-slicedata slicing_data_directory
                     Export slicing data to a folder.
 --help, -h          Show command help.
 --info              Output the model's information.
 --load-slicedata slicing_data_directory
                     Load cached slicing data from directory
 --pipe pipename     Send progress to pipe.
 --slice option      Slice the plates: 0-all plates, i-plate i, others-invalid
 --uptodate          Update the configs values of 3mf to latest.

Print settings priorites:
        1) setting values from the command line (highest priority)
        2) setting values loaded with --load_settings and --load_filaments
        3) setting values loaded from 3mf(lowest priority)

Since we're working with bind mounts, pass the full path relative to root for any filenames. For example:

[me@mypc BambuStudio]$ ./DockerRun.sh /home/me/cad/adapter.3mf