From a64085f165617130e9007c0cbbb89f188876f5bd Mon Sep 17 00:00:00 2001 From: Cal Heldenbrand Date: Wed, 22 Feb 2023 12:13:05 -0600 Subject: [PATCH] Copy Containerfile to Dockerfile before modifying --- Dockerfile | 71 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 71 insertions(+) create mode 100644 Dockerfile diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 000000000..4969b3ded --- /dev/null +++ b/Dockerfile @@ -0,0 +1,71 @@ +# Build Bambu Slicer in a container +# +# Build an AppImage using rootless Podman (refer to https://github.com/containers/podman/blob/main/docs/tutorials/rootless_tutorial.md): +# rm -rf build; podman build . -t bambu-studio-builder && podman run --rm localhost/bambu-studio-builder /bin/bash -c 'tar -c $(find build | grep ubu64.AppImage | head -1)' | tar -xv +# +# Troubleshooting the build container: +# podman run -it --name bambu-studio-builder localhost/bambu-studio-builder /bin/bash +# +# Debugging the resulting AppImage: +# 1) Install `gdb` +# 2) In a terminal in the same directory as the AppImage, start it with following: +# echo -e "run\nbt\nquit" | gdb ./BambuStudio_ubu64.AppImage +# 3) Find related issue using backtrace output for clues and add backtrace to it on github +# +# Docker alternative AppImage build syntax (use this if you can't install podman): +# rm -rf build; docker build . --file Containerfile -t bambu-studio-builder; docker run --rm bambu-studio-builder /bin/bash -c 'tar -c $(find build | grep ubu64.AppImage | head -1)' | tar -xv +# +# +# TODO: bind mount BambuStudio to inside the container instead of COPY to enable faster rebuilds during dev work. + +FROM docker.io/ubuntu:20.04 +LABEL maintainer "DeftDawg " + +# Disable interactive package configuration +RUN apt-get update && \ + echo 'debconf debconf/frontend select Noninteractive' | debconf-set-selections + +# Add a deb-src +RUN echo deb-src http://archive.ubuntu.com/ubuntu \ + $(cat /etc/*release | grep VERSION_CODENAME | cut -d= -f2) main universe>> /etc/apt/sources.list + +RUN apt-get update && apt-get install -y \ + git \ + build-essential \ + autoconf pkgconf m4 \ + cmake extra-cmake-modules \ + libglu1-mesa-dev libglu1-mesa-dev \ + libwayland-dev libxkbcommon-dev wayland-protocols \ + eglexternalplatform-dev libglew-dev \ + libgtk-3-dev \ + libdbus-1-dev \ + libcairo2-dev \ + libgtk-3-dev libwebkit2gtk-4.0-dev \ + libsoup2.4-dev \ + libgstreamer1.0-dev libgstreamer-plugins-good1.0-dev libgstreamer-plugins-base1.0-dev libgstreamerd-3-dev \ + libmspack-dev \ + libosmesa6-dev \ + libssl-dev libcurl4-openssl-dev libsecret-1-dev \ + libudev-dev \ + curl \ + wget \ + file \ + sudo + +COPY ./ BambuStudio + +WORKDIR BambuStudio + +# These can run together, but we run them seperate for podman caching +# Update System dependencies +RUN ./BuildLinux.sh -u + +# Build dependencies in ./deps +RUN ./BuildLinux.sh -d + +# Build slic3r +RUN ./BuildLinux.sh -s + +# Build AppImage +ENV container podman +RUN ./BuildLinux.sh -i