# Copyright (C) The Arvados Authors. All rights reserved. # # SPDX-License-Identifier: AGPL-3.0 FROM debian:10 ENV DEBIAN_FRONTEND noninteractive RUN echo "deb http://deb.debian.org/debian buster-backports main" > /etc/apt/sources.list.d/backports.list RUN apt-get update && \ apt-get -yq --no-install-recommends -o Acquire::Retries=6 install \ golang -t buster-backports # The arvbox-specific dependencies are # gnupg2 runit python3-pip python3-setuptools python3-yaml shellinabox netcat less RUN apt-get -yq --no-install-recommends -o Acquire::Retries=6 install \ build-essential ca-certificates git libpam0g-dev \ gnupg2 runit python3-pip python3-setuptools python3-yaml shellinabox netcat less && \ apt-get clean ENV GOPATH /var/lib/gopath RUN cd /usr/src && \ git clone https://git.arvados.org/arvados.git && \ cd arvados && \ go mod download && \ cd cmd/arvados-server && \ go install && \ $GOPATH/bin/arvados-server install -type test RUN /etc/init.d/postgresql start && \ su postgres -c 'dropuser arvados' && \ su postgres -c 'createuser -s arvbox' && \ /etc/init.d/postgresql stop ENV GEM_HOME /var/lib/arvados/lib/ruby/gems/2.5.0 ENV PATH $PATH:$GEM_HOME/bin VOLUME /var/lib/docker VOLUME /var/log/nginx VOLUME /etc/ssl/private ADD 8D81803C0EBFCD88.asc /tmp/ RUN apt-key add --no-tty /tmp/8D81803C0EBFCD88.asc && \ rm -f /tmp/8D81803C0EBFCD88.asc RUN mkdir -p /etc/apt/sources.list.d && \ echo deb https://download.docker.com/linux/debian/ buster stable > /etc/apt/sources.list.d/docker.list && \ apt-get update && \ apt-get -yq --no-install-recommends install docker-ce=5:19.03.13~3-0~debian-buster && \ apt-get clean # Set UTF-8 locale RUN echo en_US.UTF-8 UTF-8 > /etc/locale.gen && locale-gen ENV LANG en_US.UTF-8 ENV LANGUAGE en_US:en ENV LC_ALL en_US.UTF-8 ARG arvados_version RUN echo arvados_version is git commit $arvados_version ADD fuse.conf /etc/ ADD gitolite.rc \ keep-setup.sh common.sh createusers.sh \ logger runsu.sh waitforpostgres.sh \ yml_override.py api-setup.sh \ go-setup.sh devenv.sh cluster-config.sh edit_users.py \ /usr/local/lib/arvbox/ ADD runit /etc/runit # arvbox mounts a docker volume at $ARVADOS_CONTAINER_PATH, make sure that that # doesn't overlap with the directory where `arvados-server install -type test` # put everything (/var/lib/arvados) ENV ARVADOS_CONTAINER_PATH /var/lib/arvados-arvbox # Start the supervisor. ENV SVDIR /etc/service STOPSIGNAL SIGINT CMD ["/etc/runit/2"]