ENV DEBIAN_FRONTEND noninteractive
# The arvbox-specific dependencies are
-# gnupg2 runit python3-pip python3-setuptools python3-yaml shellinabox netcat-openbsd less
+# gnupg2 runit python3-dev python3-venv shellinabox netcat-openbsd less
RUN apt-get update && \
apt-get -yq --no-install-recommends -o Acquire::Retries=6 install \
- gnupg2 runit python3-pip python3-setuptools python3-yaml shellinabox netcat-openbsd less vim-tiny && \
+ gnupg2 runit python3-dev python3-venv shellinabox netcat-openbsd less vim-tiny && \
apt-get clean
ENV GOPATH /var/lib/gopath
RUN $GOPATH/bin/arvados-server --version
RUN $GOPATH/bin/arvados-server install -type test
+# Set up a virtualenv for all Python tools in arvbox.
+# This is used mainly by the `sdk` service, but `doc` and internal scripts
+# also rely on it.
+# 1. Install wheel just to modernize the virtualenv.
+# 2. Install setuptools as an sdk build dependency; PyYAML for all tests
+# and yml_override;py; and pdoc for the doc service.
+# Everything else is installed by the sdk service on boot.
+RUN python3 -m venv /opt/arvados-py \
+ && /opt/arvados-py/bin/pip install --no-cache-dir wheel \
+ && /opt/arvados-py/bin/pip install --no-cache-dir setuptools PyYAML pdoc \
+ && ln -s /opt/arvados-py/bin/pdoc /usr/local/bin/
+
RUN /etc/init.d/postgresql start && \
su postgres -c 'dropuser arvados' && \
su postgres -c 'createuser -s arvbox' && \