16267: switch to `arvados-server install -type test` for installing
[arvados.git] / tools / arvbox / lib / arvbox / docker / Dockerfile.base
1 # Copyright (C) The Arvados Authors. All rights reserved.
2 #
3 # SPDX-License-Identifier: AGPL-3.0
4
5 FROM debian:10
6
7 ENV DEBIAN_FRONTEND noninteractive
8
9 RUN echo "deb http://deb.debian.org/debian buster-backports main" > /etc/apt/sources.list.d/backports.list
10
11 RUN apt-get update && \
12     apt-get -yq --no-install-recommends -o Acquire::Retries=6 install \
13     golang -t buster-backports
14
15 # The arvbox-specific dependencies are
16 #  gnupg2 runit python3-pip python3-setuptools python3-yaml shellinabox netcat less
17 RUN apt-get -yq --no-install-recommends -o Acquire::Retries=6 install \
18     build-essential ca-certificates git libpam0g-dev \
19     gnupg2 runit python3-pip python3-setuptools python3-yaml shellinabox netcat less && \
20     apt-get clean
21
22 ENV GOPATH /var/lib/gopath
23
24 RUN cd /usr/src && \
25     git clone https://git.arvados.org/arvados.git && \
26     cd arvados && \
27     go mod download && \
28     cd cmd/arvados-server && \
29     go install && \
30     $GOPATH/bin/arvados-server install -type test
31
32 RUN /etc/init.d/postgresql start && \
33     su postgres -c 'dropuser arvados' && \
34     su postgres -c 'createuser -s arvbox' && \
35     /etc/init.d/postgresql stop
36
37 ENV GEM_HOME /var/lib/arvados/lib/ruby/gems/2.5.0
38 ENV PATH $PATH:$GEM_HOME/bin
39
40 VOLUME /var/lib/docker
41 VOLUME /var/log/nginx
42 VOLUME /etc/ssl/private
43
44 ADD 8D81803C0EBFCD88.asc /tmp/
45 RUN apt-key add --no-tty /tmp/8D81803C0EBFCD88.asc && \
46     rm -f /tmp/8D81803C0EBFCD88.asc
47
48 RUN mkdir -p /etc/apt/sources.list.d && \
49     echo deb https://download.docker.com/linux/debian/ buster stable > /etc/apt/sources.list.d/docker.list && \
50     apt-get update && \
51     apt-get -yq --no-install-recommends install docker-ce=5:19.03.13~3-0~debian-buster && \
52     apt-get clean
53
54 # Set UTF-8 locale
55 RUN echo en_US.UTF-8 UTF-8 > /etc/locale.gen && locale-gen
56 ENV LANG en_US.UTF-8
57 ENV LANGUAGE en_US:en
58 ENV LC_ALL en_US.UTF-8
59
60 ARG arvados_version
61 RUN echo arvados_version is git commit $arvados_version
62
63 ADD fuse.conf /etc/
64
65 ADD gitolite.rc \
66     keep-setup.sh common.sh createusers.sh \
67     logger runsu.sh waitforpostgres.sh \
68     yml_override.py api-setup.sh \
69     go-setup.sh devenv.sh cluster-config.sh edit_users.py \
70     /usr/local/lib/arvbox/
71
72 ADD runit /etc/runit
73
74 # arvbox mounts a docker volume at $ARVADOS_CONTAINER_PATH, make sure that that
75 # doesn't overlap with the directory where `arvados-server install -type test`
76 # put everything (/var/lib/arvados)
77 ENV ARVADOS_CONTAINER_PATH /var/lib/arvados-arvbox
78
79 # Start the supervisor.
80 ENV SVDIR /etc/service
81 STOPSIGNAL SIGINT
82 CMD ["/etc/runit/2"]