2019-04-04 18:28:04 +00:00
|
|
|
ARG TAG
|
2019-04-07 15:10:15 +00:00
|
|
|
FROM debian:${TAG}
|
2020-07-18 00:36:17 +00:00
|
|
|
ARG PYTHON_VERSION
|
2022-02-14 15:57:44 +00:00
|
|
|
ENV DEBIAN_FRONTEND noninteractive
|
2019-04-04 15:26:10 +00:00
|
|
|
ENV WHEELHOUSE_PATH /tmp/wheelhouse
|
|
|
|
ENV VIRTUALENV_PATH /tmp/venv
|
2019-04-04 16:38:48 +00:00
|
|
|
# This will get updated by the CircleCI checkout step.
|
|
|
|
ENV BUILD_SRC_ROOT /tmp/project
|
2019-04-04 15:26:10 +00:00
|
|
|
|
2019-04-03 18:41:50 +00:00
|
|
|
RUN apt-get --quiet update && \
|
|
|
|
apt-get --quiet --yes install \
|
2020-07-17 20:45:10 +00:00
|
|
|
git \
|
|
|
|
lsb-release \
|
2019-04-03 18:41:50 +00:00
|
|
|
sudo \
|
2020-07-17 20:45:10 +00:00
|
|
|
build-essential \
|
|
|
|
python${PYTHON_VERSION} \
|
|
|
|
python${PYTHON_VERSION}-dev \
|
|
|
|
libffi-dev \
|
|
|
|
libssl-dev \
|
|
|
|
libyaml-dev \
|
|
|
|
virtualenv
|
2019-04-04 15:26:10 +00:00
|
|
|
|
2019-04-05 12:15:24 +00:00
|
|
|
# Get the project source. This is better than it seems. CircleCI will
|
|
|
|
# *update* this checkout on each job run, saving us more time per-job.
|
2019-04-04 15:26:10 +00:00
|
|
|
COPY . ${BUILD_SRC_ROOT}
|
|
|
|
|
2020-07-17 20:23:42 +00:00
|
|
|
RUN "${BUILD_SRC_ROOT}"/.circleci/prepare-image.sh "${WHEELHOUSE_PATH}" "${VIRTUALENV_PATH}" "${BUILD_SRC_ROOT}" "python${PYTHON_VERSION}"
|
2019-04-04 19:33:16 +00:00
|
|
|
|
|
|
|
# Only the integration tests currently need this but it doesn't hurt to always
|
|
|
|
# have it present and it's simpler than building a whole extra image just for
|
|
|
|
# the integration tests.
|
2019-04-07 15:10:15 +00:00
|
|
|
RUN ${BUILD_SRC_ROOT}/integration/install-tor.sh
|