mirror of
https://github.com/denizsafak/abogen.git
synced 2026-07-18 13:40:27 +02:00
43 lines
1.5 KiB
Docker
43 lines
1.5 KiB
Docker
# Special thanks to @geo38 from Reddit, who provided this Dockerfile:
|
|
# https://www.reddit.com/r/selfhosted/comments/1k8x1yo/comment/mpe0bz8/
|
|
|
|
# Use a docker base image that runs a window manager that can be viewed
|
|
# outside the image with a web browser or VNC client.
|
|
# https://github.com/jlesage/docker-baseimage-gui
|
|
FROM jlesage/baseimage-gui:debian-12-v4
|
|
|
|
# Load stuff needed by abogen
|
|
RUN apt-get update \
|
|
&& apt-get install -y \
|
|
python3 \
|
|
python3-venv \
|
|
python3-pip \
|
|
python3-pyqt5 \
|
|
espeak-ng \
|
|
&& apt-get clean \
|
|
&& rm -rf /var/lib/apt/lists/*
|
|
|
|
# The base image will run /startapp.sh on launch.
|
|
#
|
|
# The base image runs that script as user 'app' uid=1000. That user
|
|
# does not exist in the base image but is created at run time.
|
|
#
|
|
# We need to install abogen in python venv (requirement of newer python3).
|
|
#
|
|
# The python venv has to be writable by the 'app' user as abogen dynamically
|
|
# installs python packages, so create the venv as that user
|
|
#
|
|
# We intend to share the /shared directory with the host using a bind volume
|
|
# in order to access any source files and the created files.
|
|
|
|
RUN echo '#!/bin/bash\nsource /app/venv/bin/activate\nexec abogen' > /startapp.sh \
|
|
&& chmod 555 /startapp.sh \
|
|
&& mkdir /app /shared \
|
|
&& chown 1000:1000 /app /shared \
|
|
&& chmod 755 /app /shared
|
|
USER 1000:1000
|
|
RUN python3 -m venv /app/venv
|
|
RUN /bin/bash -c "source /app/venv/bin/activate && pip install abogen"
|
|
# Change back to user ROOT as the startup scripts inside base image needs it
|
|
USER root
|