meme-generator / Dockerfile
Container's picture
Update Dockerfile
ec2a6c2 verified
FROM ubuntu:22.04
ENV DEBIAN_FRONTEND=noninteractive
RUN apt-get update && apt-get install -y \
python3 \
python3-pip \
python3-venv \
git \
fontconfig \
fonts-noto-cjk \
fonts-noto-color-emoji \
libfontconfig1 \
libgl1 \
libglx-mesa0 \
libgl1-mesa-dri \
libegl1 \
libegl-mesa0 \
&& rm -rf /var/lib/apt/lists/*
# 先取一份固定版本,用来复制内置字体
RUN git clone --branch v0.0.20 --depth 1 https://github.com/MeetWq/meme-generator.git /tmp/meme-generator \
&& mkdir -p /usr/share/fonts/meme \
&& cp /tmp/meme-generator/resources/fonts/* /usr/share/fonts/meme/ \
&& fc-cache -fv \
&& rm -rf /tmp/meme-generator
RUN useradd -m -u 1000 user
USER user
ENV HOME=/home/user
ENV PATH=$HOME/.local/bin:$PATH
ENV POETRY_CONFIG_DIR=$HOME/app/.poetry_config
WORKDIR $HOME/app
COPY --chown=user . $HOME/app
# 这里也锁同一个版本,避免前后版本不一致
RUN git clone --branch v0.0.20 --depth 1 https://github.com/MeetWq/meme-generator.git
RUN pip install --no-cache-dir poetry
RUN git clone --depth 1 https://github.com/MeetWq/meme-generator-contrib.git \
&& mkdir -p $HOME/meme-extend \
&& mv meme-generator-contrib/memes/* $HOME/meme-extend \
&& rm -rf meme-generator-contrib
RUN mkdir -p $HOME/.config/meme_generator
COPY --chown=user config.toml $HOME/.config/meme_generator/config.toml
# 你的自定义覆盖
COPY --chown=user utils.py $HOME/app/meme-generator/meme_generator/
COPY --chown=user dianzhongdian/__init__.py $HOME/app/meme-generator/meme_generator/memes/dianzhongdian/
RUN cd meme-generator \
&& poetry config virtualenvs.in-project true \
&& poetry install \
&& . .venv/bin/activate \
&& python3 -m meme_generator.download
CMD cd meme-generator && . .venv/bin/activate && python3 -m meme_generator.app