wapiti/Dockerfile.headless

56 lines
1.9 KiB
Docker

FROM debian:bookworm-slim as build
ENV DEBIAN_FRONTEND=noninteractive \
LANG=en_US.UTF-8
WORKDIR /usr/src/app
RUN apt update \
&& apt install python3 python3-pip python3-setuptools ca-certificates -y \
&& apt clean -yq \
&& apt autoremove -yq \
&& rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* \
&& truncate -s 0 /var/log/*log
COPY . .
RUN pip3 install . --break-system-packages
FROM debian:bookworm-slim
ARG firefox_ver=124.0
ARG geckodriver_ver=0.34.0
ENV DEBIAN_FRONTEND=noninteractive \
LANG=en_US.UTF-8 \
PYTHONDONTWRITEBYTECODE=1 \
PATH=$PATH:/opt/firefox \
OPENSSL_CONF='/etc/wapiti/openssl_conf'
RUN apt update \
&& apt install python3 python3-setuptools curl bzip2 -y \
&& apt-get install -y --no-install-recommends --no-install-suggests \
`apt-cache depends firefox-esr | awk '/Depends:/{print$2}'` \
# additional 'firefox-esl' dependencies which is not in 'depends' list
libasound2 libxt6 libxtst6 \
&& curl -fL -o /tmp/firefox.tar.bz2 \
https://ftp.mozilla.org/pub/firefox/releases/${firefox_ver}/linux-x86_64/en-GB/firefox-${firefox_ver}.tar.bz2 \
&& tar -xjf /tmp/firefox.tar.bz2 -C /tmp/ \
&& mv /tmp/firefox /opt/firefox \
# Download and install geckodriver
&& curl -fL -o /tmp/geckodriver.tar.gz \
https://github.com/mozilla/geckodriver/releases/download/v${geckodriver_ver}/geckodriver-v${geckodriver_ver}-linux64.tar.gz \
&& tar -xzf /tmp/geckodriver.tar.gz -C /tmp/ \
&& chmod +x /tmp/geckodriver \
&& mv /tmp/geckodriver /usr/local/bin/ \
&& apt clean -yq \
&& apt autoremove -yq \
&& rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* \
&& truncate -s 0 /var/log/*log
COPY --from=build /usr/local/lib/python3.11/dist-packages/ /usr/local/lib/python3.11/dist-packages/
COPY --from=build /usr/local/bin/wapiti /usr/local/bin/wapiti-getcookie /usr/local/bin/
COPY --chmod=644 openssl_conf /etc/wapiti/
ENTRYPOINT ["wapiti"]