parent
e23e71bec5
commit
2c5e78e9c7
3 changed files with 136 additions and 0 deletions
16
DockerBuild.sh
Executable file
16
DockerBuild.sh
Executable file
|
@ -0,0 +1,16 @@
|
||||||
|
#!/bin/bash
|
||||||
|
PROJECT_ROOT=$(cd -P -- "$(dirname -- "$0")" && printf '%s\n' "$(pwd -P)")
|
||||||
|
|
||||||
|
set -x
|
||||||
|
|
||||||
|
# Wishlist hint: For developers, creating a Docker Compose
|
||||||
|
# setup with persistent volumes for the build & deps directories
|
||||||
|
# would speed up recompile times significantly. For end users,
|
||||||
|
# the simplicity of a single Docker image and a one-time compilation
|
||||||
|
# seems better.
|
||||||
|
docker build -t orcaslicer \
|
||||||
|
--build-arg USER=$USER \
|
||||||
|
--build-arg UID=$(id -u) \
|
||||||
|
--build-arg GID=$(id -g) \
|
||||||
|
--build-arg NCORES=$NCORES \
|
||||||
|
$PROJECT_ROOT
|
25
DockerRun.sh
Executable file
25
DockerRun.sh
Executable file
|
@ -0,0 +1,25 @@
|
||||||
|
#!/bin/bash
|
||||||
|
set -x
|
||||||
|
# Just in case, here's some other things that might help:
|
||||||
|
# Force the container's hostname to be the same as your workstation
|
||||||
|
# -h $HOSTNAME \
|
||||||
|
# If there's problems with the X display, try this
|
||||||
|
# -v /tmp/.X11-unix:/tmp/.X11-unix \
|
||||||
|
docker run \
|
||||||
|
`# Use the hosts networking. Printer wifi and also dbus communication` \
|
||||||
|
--net=host \
|
||||||
|
`# Some X installs will not have permissions to talk to sockets for shared memory` \
|
||||||
|
--ipc host \
|
||||||
|
`# Run as your workstations username to keep permissions the same` \
|
||||||
|
-u $USER \
|
||||||
|
`# Bind mount your home directory into the container for loading/saving files` \
|
||||||
|
-v $HOME:/home/$USER \
|
||||||
|
`# Pass the X display number to the container` \
|
||||||
|
-e DISPLAY=$DISPLAY \
|
||||||
|
`# It seems that libGL and dbus things need privileged mode` \
|
||||||
|
--privileged=true \
|
||||||
|
`# Attach tty for running orca slicer with command line things` \
|
||||||
|
-ti \
|
||||||
|
`# Pass all parameters from this script to the orca slicer ENTRYPOINT binary` \
|
||||||
|
orcaslicer $*
|
||||||
|
|
95
Dockerfile
Normal file
95
Dockerfile
Normal file
|
@ -0,0 +1,95 @@
|
||||||
|
FROM docker.io/ubuntu:22.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 \
|
||||||
|
autoconf \
|
||||||
|
build-essential \
|
||||||
|
cmake \
|
||||||
|
curl \
|
||||||
|
eglexternalplatform-dev \
|
||||||
|
extra-cmake-modules \
|
||||||
|
file \
|
||||||
|
git \
|
||||||
|
gstreamer1.0-plugins-bad \
|
||||||
|
gstreamer1.0-libav \
|
||||||
|
libcairo2-dev \
|
||||||
|
libcurl4-openssl-dev \
|
||||||
|
libdbus-1-dev \
|
||||||
|
libglew-dev \
|
||||||
|
libglu1-mesa-dev \
|
||||||
|
libglu1-mesa-dev \
|
||||||
|
libgstreamer1.0-dev \
|
||||||
|
libgstreamerd-3-dev \
|
||||||
|
libgstreamer-plugins-base1.0-dev \
|
||||||
|
libgstreamer-plugins-good1.0-dev \
|
||||||
|
libgtk-3-dev \
|
||||||
|
libgtk-3-dev \
|
||||||
|
libosmesa6-dev \
|
||||||
|
libsecret-1-dev \
|
||||||
|
libsoup2.4-dev \
|
||||||
|
libssl3 \
|
||||||
|
libssl-dev \
|
||||||
|
libudev-dev \
|
||||||
|
libwayland-dev \
|
||||||
|
libwebkit2gtk-4.0-dev \
|
||||||
|
libxkbcommon-dev \
|
||||||
|
locales \
|
||||||
|
locales-all \
|
||||||
|
m4 \
|
||||||
|
pkgconf \
|
||||||
|
sudo \
|
||||||
|
wayland-protocols \
|
||||||
|
wget
|
||||||
|
|
||||||
|
# Change your locale here if you want. See the output
|
||||||
|
# of `locale -a` to pick the correct string formatting.
|
||||||
|
ENV LC_ALL=en_US.utf8
|
||||||
|
RUN locale-gen $LC_ALL
|
||||||
|
|
||||||
|
# Set this so that Orca Slicer doesn't complain about
|
||||||
|
# the CA cert path on every startup
|
||||||
|
ENV SSL_CERT_FILE=/etc/ssl/certs/ca-certificates.crt
|
||||||
|
|
||||||
|
COPY ./ OrcaSlicer
|
||||||
|
|
||||||
|
WORKDIR OrcaSlicer
|
||||||
|
|
||||||
|
# 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; exit 0
|
||||||
|
|
||||||
|
RUN apt-get install -y libcgal-dev
|
||||||
|
# Build slic3r
|
||||||
|
RUN ./BuildLinux.sh -s
|
||||||
|
|
||||||
|
# Build AppImage
|
||||||
|
ENV container podman
|
||||||
|
RUN ./BuildLinux.sh -i
|
||||||
|
|
||||||
|
# It's easier to run Orca Slicer as the same username,
|
||||||
|
# UID and GID as your workstation. Since we bind mount
|
||||||
|
# your home directory into the container, it's handy
|
||||||
|
# to keep permissions the same. Just in case, defaults
|
||||||
|
# are root.
|
||||||
|
SHELL ["/bin/bash", "-l", "-c"]
|
||||||
|
ARG USER=root
|
||||||
|
ARG UID=0
|
||||||
|
ARG GID=0
|
||||||
|
RUN [[ "$UID" != "0" ]] \
|
||||||
|
&& groupadd -f -g $GID $USER \
|
||||||
|
&& useradd -u $UID -g $GID $USER
|
||||||
|
|
||||||
|
# Using an entrypoint instead of CMD because the binary
|
||||||
|
# accepts several command line arguments.
|
||||||
|
ENTRYPOINT ["/OrcaSlicer/build/package/bin/orca-slicer"]
|
Loading…
Reference in a new issue