vitess.io/vitess@v0.16.2/docker/bootstrap/Dockerfile.common (about)

     1  FROM --platform=linux/amd64 golang:1.20.3-buster
     2  
     3  # Install Vitess build dependencies
     4  RUN apt-get update && DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends \
     5      # TODO(mberlin): Group these to make it easier to understand which library actually requires them.
     6      ant \
     7      chromium \
     8      curl \
     9      default-jdk \
    10      etcd \
    11      g++ \
    12      git \
    13      make \
    14      maven \
    15      software-properties-common \
    16      unzip \
    17      zip \
    18      xvfb \
    19      && rm -rf /var/lib/apt/lists/*
    20  
    21  # Set up Vitess environment (equivalent to '. dev.env')
    22  ENV VTROOT /vt/src/vitess.io/vitess
    23  ENV VTDATAROOT /vt/vtdataroot
    24  ENV VTPORTSTART 15000
    25  ENV PATH $VTROOT/bin:$VTROOT/dist/maven/bin:$VTROOT/dist/chromedriver:$PATH
    26  ENV USER vitess
    27  
    28  # Copy files needed for bootstrap
    29  COPY bootstrap.sh dev.env build.env go.mod go.sum /vt/src/vitess.io/vitess/
    30  COPY config /vt/src/vitess.io/vitess/config
    31  COPY tools /vt/src/vitess.io/vitess/tools
    32  
    33  # Create vitess user
    34  RUN groupadd -r vitess && useradd -r -g vitess vitess && \
    35      mkdir -p /vt/vtdataroot /home/vitess && \
    36      chown -R vitess:vitess /vt /home/vitess
    37  
    38  # Download vendored Go dependencies
    39  RUN cd /vt/src/vitess.io/vitess && \
    40   su vitess -c "/usr/local/go/bin/go mod download"
    41  
    42  # Create mount point for actual data (e.g. MySQL data dir)
    43  VOLUME /vt/vtdataroot
    44  
    45  # The docker lite images copy from the builder in /vt/bin
    46  # Add compatibility to the previous layout for now
    47  RUN su vitess -c "mkdir -p /vt/src/vitess.io/vitess/bin && rm -rf /vt/bin && ln -s /vt/src/vitess.io/vitess/bin /vt/bin"
    48  
    49  # If the user doesn't specify a command, load a shell.
    50  CMD ["/bin/bash"]