71 lines
2.5 KiB
Docker
71 lines
2.5 KiB
Docker
# 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 orca-slicer-builder && podman run --rm localhost/orca-slicer-builder /bin/bash -c 'tar -c $(find build | grep ubu64.AppImage | head -1)' | tar -xv
|
|
#
|
|
# Troubleshooting the build container:
|
|
# podman run -it --name orca-slicer-builder localhost/orca-slicer-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 orca-slicer-builder; docker run --rm orca-slicer-builder /bin/bash -c 'tar -c $(find build | grep ubu64.AppImage | head -1)' | tar -xv
|
|
#
|
|
#
|
|
# TODO: bind mount OrcaSlicer to inside the container instead of COPY to enable faster rebuilds during dev work.
|
|
|
|
FROM docker.io/ubuntu:20.04
|
|
LABEL maintainer "DeftDawg <DeftDawg@gmail.com>"
|
|
|
|
# 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
|