Dockerfile 2.9 KB
Newer Older
1 2
ARG BASE_IMAGE=ubuntu:18.04

3
FROM $BASE_IMAGE
4 5

ARG DEBIAN_FRONTEND=noninteractive
6
ARG BASE_IMAGE
7 8

RUN apt-get update -y && \
9 10
    apt-get install -y --no-install-recommends apt-utils openjdk-8-jdk software-properties-common && \
    add-apt-repository -y ppa:ubuntu-toolchain-r/test && apt-get update -y && \
11 12 13 14 15 16 17 18 19 20 21 22 23
    apt-get install -y --no-install-recommends gcc-6 g++-6 cmake && \
    update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-6 60 --slave /usr/bin/g++ g++ /usr/bin/g++-6 && \
    update-alternatives --config gcc && \
    gcc --version && g++ --version && \
    apt-get install -y --no-install-recommends ant \
    bison \
    build-essential \
    ccache \
    curl \
    dirmngr \
    flex \
    git-core \
    iputils-ping \
24
    iproute2 \
25 26 27 28 29 30 31 32 33 34
    jq \
    libapr1-dev \
    libbz2-dev \
    libcurl4-gnutls-dev \
    libevent-dev \
    libkrb5-dev \
    libpam-dev \
    libperl-dev \
    libreadline-dev \
    libssl-dev \
35
    $([ "$BASE_IMAGE" = ubuntu:16.04 ] && echo libxerces-c-dev) \
36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53
    libxml2-dev \
    libyaml-dev \
    libzstd1-dev \
    locales \
    maven \
    net-tools \
    ninja-build \
    openssh-server \
    pkg-config \
    python-dev \
    python-pip \
    python-psutil \
    python-setuptools \
    less \
    rsync \
    ssh \
    sudo \
    time \
54
    unzip \
55 56 57 58 59 60 61 62 63 64 65 66 67 68 69
    vim \
    wget \
    zlib1g-dev && \
    rm -rf /var/lib/apt/lists/*

    # setup ssh configuration
RUN locale-gen en_US.UTF-8 && \
    ssh-keygen -t rsa -N "" -f /root/.ssh/id_rsa && \
    cat /root/.ssh/id_rsa.pub >> /root/.ssh/authorized_keys && \
    chmod 0600 /root/.ssh/authorized_keys && \
    echo "root:password" | chpasswd 2> /dev/null && \
    #
    sed -i -e 's|Defaults    requiretty|#Defaults    requiretty|' /etc/sudoers && \
    sed -ri 's/UsePAM yes/UsePAM no/g;s/PasswordAuthentication yes/PasswordAuthentication no/g' /etc/ssh/sshd_config && \
    sed -ri 's@^HostKey /etc/ssh/ssh_host_ecdsa_key$@#&@;s@^HostKey /etc/ssh/ssh_host_ed25519_key$@#&@' /etc/ssh/sshd_config && \
70 71
    service ssh start && \
    { ssh-keyscan localhost; ssh-keyscan 0.0.0.0; } >> /root/.ssh/known_hosts && \
72
    # create user gpadmin since GPDB cannot run under root
73
    groupadd -g 1000 gpadmin && useradd -u 1000 -g 1000 gpadmin -s /bin/bash && \
74 75 76 77 78 79 80 81 82 83 84 85
    echo "gpadmin  ALL=(ALL)       NOPASSWD: ALL" > /etc/sudoers.d/gpadmin && \
    groupadd supergroup && usermod -a -G supergroup gpadmin && \
    mkdir -p /home/gpadmin/.ssh && \
    ssh-keygen -t rsa -N "" -f /home/gpadmin/.ssh/id_rsa && \
    cat /home/gpadmin/.ssh/id_rsa.pub >> /home/gpadmin/.ssh/authorized_keys && \
    chmod 0600 /home/gpadmin/.ssh/authorized_keys && \
    echo "gpadmin:password" | chpasswd 2> /dev/null && \
    { ssh-keyscan localhost; ssh-keyscan 0.0.0.0; } >> /home/gpadmin/.ssh/known_hosts && \
    chown -R gpadmin:gpadmin /home/gpadmin && \
    mkdir /usr/local/greenplum-db-devel && \
    chown gpadmin:gpadmin /usr/local/greenplum-db-devel