FROM python:3.14-slim

# Set locale to prevent UTF-8 errors
ENV LANG=C.UTF-8
ENV LC_ALL=C.UTF-8

# Set to non-interactive so no tzdata prompt
ARG DEBIAN_FRONTEND=noninteractive

# Installing some pre-requisites and some
# packages needed for testing duplicity
RUN apt update \
    && apt upgrade -y \
    && apt install -y \
        build-essential \
        git \
        gpg \
        intltool \
        lftp \
        libxml2-dev \
        libxslt-dev \
        librsync-dev \
        libffi-dev \
        libssl-dev \
        openssl \
        par2 \
        python3-dev \
        rclone \
        rdiff \
        tzdata

WORKDIR /root/
COPY requirements.dev ./
COPY requirements.txt ./

RUN <<EOF
set -e
# install requirements
python3 -m pip install --upgrade pip setuptools
python3 -m pip install -r requirements.dev
python3 -m pip install -r requirements.txt

# cleanup the noise left over
echo "Cleaning up"
rm -rf /root/.cache/pip
rm -rf /root/requirements.*
rm -rf /var/lib/apt/lists/*
EOF

COPY testing/gnupg/ /root/.gnupg/
RUN <<EOF
set -e
# fixup /root/.bashrc
cat <<CAT >> /root/.bashrc
# added by dupCI
alias ll='ls -l'
alias la='ls -A'
CAT
cat <<CAT >> /root/.bash_profile
# added by dupCI
gpg-agent --daemon --enable-ssh-support --verbose
GPG_TTY=$(tty)
export GPG_TTY
CAT
chmod -R 700 /root/.gnupg
EOF

ENV DOCKER_GNUPGHOME=/root/.gnupg
