pygomx/Containerfile.debian

58 lines
1.1 KiB
Text

# syntax=docker/dockerfile:1
ARG GOLANG_VERSION=1.24
ARG DEBIAN_VERSION=trixie
ARG PYTHON_VERSION=3.14
FROM docker.io/library/python:${PYTHON_VERSION}-${DEBIAN_VERSION} AS pybuilder
ENV PYTHONUNBUFFERED=1
ENV PIP_ROOT_USER_ACTION=ignore
RUN <<EOF
# install packages
set -eu
apt update
apt -y upgrade
apt -y install golang libolm-dev
EOF
RUN pip install cffi setuptools build
#RUN --mount=type=bind,source=.,target=/pygomx <<EOF
COPY libmxclient /pygomx/libmxclient
COPY pygomx /pygomx/pygomx
RUN <<EOF
# build py module
set -eu
cd /pygomx/pygomx
python3 -m build --verbose --wheel --outdir /pygomx-wheel
ls -la /pygomx-wheel
EOF
FROM docker.io/library/python:${PYTHON_VERSION}-slim-${DEBIAN_VERSION} AS develop
ENV PYTHONUNBUFFERED=1
ENV PIP_ROOT_USER_ACTION=ignore
RUN pip install cffi
RUN <<EOF
# install packages
set -e
apt update
apt -y upgrade
apt -y install libolm3
rm -rf /var/lib/apt/lists/*
EOF
RUN --mount=type=bind,from=pybuilder,source=/pygomx-wheel,target=/pygomx-wheel pip install /pygomx-wheel/*.whl
FROM develop AS demobot
WORKDIR /smal
COPY smal /smal
RUN pip install .
WORKDIR /demobot
CMD [ "demobot" ]