diff --git a/DockerRun.sh b/DockerRun.sh index acc93f5473..212d9d9e67 100755 --- a/DockerRun.sh +++ b/DockerRun.sh @@ -5,6 +5,16 @@ set -x # -h $HOSTNAME \ # If there's problems with the X display, try this # -v /tmp/.X11-unix:/tmp/.X11-unix \ +# or +# -v $HOME/.Xauthority:/root/.Xauthority +# You also need to run "xhost +" on your host system +# Bambu Studio also require the parent directory for the configuration directory to be present to start +# which means it is important to make sure user is passed to container correctly +# if the following configuration does not work with error: "boost::filesystem::create_directory: No such file or directory" +# try replacing -u line with +# -u $(id -u ${USER}):$(id -g ${USER}) \ +# and add +# -e HOME=/home/$USER \ docker run \ `# Use the hosts networking. Printer wifi and also dbus communication` \ --net=host \ diff --git a/Dockerfile b/Dockerfile index 58834089e6..b4118ebc8c 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,5 +1,4 @@ -FROM docker.io/ubuntu:22.04 -LABEL maintainer "DeftDawg " +FROM docker.io/ubuntu:24.10 # Disable interactive package configuration RUN apt-get update && \ @@ -14,6 +13,7 @@ RUN apt-get update && apt-get install -y \ build-essential \ cmake \ curl \ + xvfb \ eglexternalplatform-dev \ extra-cmake-modules \ file \ @@ -39,7 +39,6 @@ RUN apt-get update && apt-get install -y \ libssl-dev \ libudev-dev \ libwayland-dev \ - libwebkit2gtk-4.0-dev \ libxkbcommon-dev \ locales \ locales-all \ @@ -47,6 +46,7 @@ RUN apt-get update && apt-get install -y \ pkgconf \ sudo \ wayland-protocols \ + libwebkit2gtk-4.1-dev \ wget # Change your locale here if you want. See the output @@ -58,9 +58,9 @@ RUN locale-gen $LC_ALL # the CA cert path on every startup ENV SSL_CERT_FILE=/etc/ssl/certs/ca-certificates.crt -COPY ./ BambuStudio +COPY ./ /BambuStudio -WORKDIR BambuStudio +WORKDIR /BambuStudio # These can run together, but we run them seperate for podman caching # Update System dependencies @@ -73,7 +73,7 @@ RUN ./BuildLinux.sh -d RUN ./BuildLinux.sh -s # Build AppImage -ENV container podman +ENV container=podman RUN ./BuildLinux.sh -i # It's easier to run Bambu Studio as the same username, @@ -81,13 +81,21 @@ RUN ./BuildLinux.sh -i # your home directory into the container, it's handy # to keep permissions the same. Just in case, defaults # are root. +# Use bash as the shell SHELL ["/bin/bash", "-l", "-c"] + +# Set ARG values ARG USER=root ARG UID=0 ARG GID=0 -RUN [[ "$UID" != "0" ]] \ - && groupadd -f -g $GID $USER \ - && useradd -u $UID -g $GID $USER + +RUN if [ "$UID" != "0" ]; then \ + groupadd -f -g $GID $USER && \ + useradd --non-unique -u $UID -g $GID $USER; \ + fi + +# Point FFMPEG Library search to the binary built upon BambuStudio build time +ENV LD_LIBRARY_PATH=/BambuStudio/build/package/bin # Using an entrypoint instead of CMD because the binary # accepts several command line arguments.