c2baf2ae5a
Creates accounts to run PhotoPrism under a custom user ID. Also adds them to the video and render groups, which might help to access hardware transcoding devices.
94 lines
No EOL
3.5 KiB
Docker
94 lines
No EOL
3.5 KiB
Docker
#### Base Image: Debian 11, Codename 'Bullseye'
|
|
FROM debian:bullseye-slim
|
|
|
|
# Open Container Initiative (OCI) Annotations
|
|
# see https://github.com/opencontainers/image-spec/blob/main/annotations.md
|
|
LABEL org.opencontainers.image.title="PhotoPrism Production Base Image"
|
|
LABEL org.opencontainers.image.description="Debian 11, Codename 'Bullseye'"
|
|
LABEL org.opencontainers.image.url="https://hub.docker.com/repository/docker/photoprism/develop"
|
|
LABEL org.opencontainers.image.source="https://github.com/photoprism/photoprism"
|
|
LABEL org.opencontainers.image.documentation="https://docs.photoprism.app/developer-guide/setup/"
|
|
LABEL org.opencontainers.image.authors="Michael Mayer <hello@photoprism.app>"
|
|
LABEL org.opencontainers.image.vendor="PhotoPrism UG"
|
|
|
|
ARG TARGETARCH
|
|
ARG BUILD_TAG
|
|
|
|
# set environment variables, see https://docs.photoprism.app/getting-started/config-options/
|
|
ENV PHOTOPRISM_ARCH=$TARGETARCH \
|
|
DOCKER_TAG=$BUILD_TAG \
|
|
DOCKER_ENV="prod" \
|
|
PS1="\u@$DOCKER_TAG:\w\$ " \
|
|
PATH="/usr/local/sbin:/usr/sbin:/sbin:/usr/local/bin:/usr/bin:/bin:/scripts:/opt/photoprism/bin" \
|
|
LD_LIBRARY_PATH="/usr/local/lib:/usr/lib" \
|
|
TMPDIR="/tmp" \
|
|
DEBIAN_FRONTEND="noninteractive" \
|
|
TF_CPP_MIN_LOG_LEVEL="2"
|
|
|
|
# copy scripts and debian backports sources list
|
|
COPY --chown=root:root --chmod=755 /scripts/dist/* /scripts/
|
|
COPY --chown=root:root --chmod=644 /docker/develop/bullseye/sources.list /etc/apt/sources.list.d/bullseye.list
|
|
|
|
# install additional distribution packages
|
|
RUN echo 'APT::Acquire::Retries "3";' > /etc/apt/apt.conf.d/80retries && \
|
|
echo 'APT::Install-Recommends "false";' > /etc/apt/apt.conf.d/80recommends && \
|
|
echo 'APT::Install-Suggests "false";' > /etc/apt/apt.conf.d/80suggests && \
|
|
echo 'APT::Get::Assume-Yes "true";' > /etc/apt/apt.conf.d/80forceyes && \
|
|
echo 'APT::Get::Fix-Missing "true";' > /etc/apt/apt.conf.d/80fixmissing && \
|
|
groupadd -f -r -g 44 video && \
|
|
groupadd -f -r -g 109 render && \
|
|
groupadd -f -g 1000 photoprism && \
|
|
useradd -m -g 1000 -u 1000 -d /photoprism -G video,render photoprism && \
|
|
chmod 777 /photoprism && \
|
|
apt-get update && apt-get -qq dist-upgrade && apt-get -qq install --no-install-recommends \
|
|
ca-certificates \
|
|
jq \
|
|
zip \
|
|
gpg \
|
|
lshw \
|
|
wget \
|
|
curl \
|
|
make \
|
|
sudo \
|
|
bash \
|
|
sqlite3 \
|
|
tzdata \
|
|
libc6 \
|
|
libatomic1 \
|
|
libheif-examples \
|
|
librsvg2-bin \
|
|
exiftool \
|
|
rawtherapee \
|
|
ffmpeg \
|
|
ffmpegthumbnailer \
|
|
libavcodec-extra \
|
|
&& \
|
|
/scripts/install-mariadb.sh mariadb-client && \
|
|
/scripts/install-darktable.sh && \
|
|
echo 'alias ll="ls -alh"' >> /etc/skel/.bashrc && \
|
|
echo 'export PS1="\u@$DOCKER_TAG:\w\$ "' >> /etc/skel/.bashrc && \
|
|
echo "ALL ALL=(ALL) NOPASSWD:SETENV: /scripts/entrypoint-init.sh" >> /etc/sudoers.d/init && \
|
|
cp /etc/skel/.bashrc /root/.bashrc && \
|
|
/scripts/create-users.sh && \
|
|
/scripts/cleanup.sh && \
|
|
cp /scripts/heif-convert.sh /usr/local/bin/heif-convert && \
|
|
install -d -m 0777 -o 1000 -g 1000 \
|
|
/var/lib/photoprism \
|
|
/tmp/photoprism \
|
|
/photoprism/originals \
|
|
/photoprism/import \
|
|
/photoprism/storage \
|
|
/photoprism/storage/sidecar \
|
|
/photoprism/storage/albums \
|
|
/photoprism/storage/backups \
|
|
/photoprism/storage/config \
|
|
/photoprism/storage/cache
|
|
|
|
# define default directory and user
|
|
WORKDIR /photoprism
|
|
|
|
# expose default http port 2342
|
|
EXPOSE 2342
|
|
|
|
# keep container running
|
|
CMD ["tail", "-f", "/dev/null"] |