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

     1  # Copyright 2019 The Vitess Authors.
     2  #
     3  # Licensed under the Apache License, Version 2.0 (the "License");
     4  # you may not use this file except in compliance with the License.
     5  # You may obtain a copy of the License at
     6  #
     7  #     http://www.apache.org/licenses/LICENSE-2.0
     8  #
     9  # Unless required by applicable law or agreed to in writing, software
    10  # distributed under the License is distributed on an "AS IS" BASIS,
    11  # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    12  # See the License for the specific language governing permissions and
    13  # limitations under the License.
    14  
    15  ARG VT_BASE_VER=latest
    16  ARG DEBIAN_VER=stable-slim
    17  
    18  FROM vitess/base:${VT_BASE_VER} AS base
    19  
    20  FROM debian:${DEBIAN_VER}
    21  
    22  # TODO: remove when https://github.com/vitessio/vitess/issues/3553 is fixed
    23  RUN apt-get update && \
    24     apt-get upgrade -qq && \
    25     apt-get install default-mysql-client -qq --no-install-recommends && \
    26     apt-get autoremove && \
    27     apt-get clean && \
    28     rm -rf /var/lib/apt/lists/*
    29  
    30  # Set up Vitess environment (just enough to run pre-built Go binaries)
    31  ENV VTROOT /vt/src/vitess.io/vitess
    32  ENV VTDATAROOT /vtdataroot
    33  
    34  # Prepare directory structure.
    35  RUN mkdir -p /vt && \
    36      mkdir -p /vt/bin && \
    37      mkdir -p /vt/config && \
    38      mkdir -p /vt/web && \
    39      mkdir -p /vtdataroot/tabletdata
    40  
    41  # Copy CA certs for https calls
    42  COPY --from=base /etc/ssl/certs/ca-certificates.crt /etc/ssl/certs/ca-certificates.crt
    43  
    44  # Copy binaries
    45  COPY --from=base /vt/bin/mysqlctld /vt/bin/
    46  COPY --from=base /vt/bin/mysqlctl /vt/bin/
    47  COPY --from=base /vt/bin/vtctld /vt/bin/
    48  COPY --from=base /vt/bin/vtctl /vt/bin/
    49  COPY --from=base /vt/bin/vtctlclient /vt/bin/
    50  COPY --from=base /vt/bin/vtgate /vt/bin/
    51  COPY --from=base /vt/bin/vttablet /vt/bin/
    52  COPY --from=base /vt/bin/vtbackup /vt/bin/
    53  COPY --from=base /vt/bin/vtadmin /vt/bin/
    54  
    55  # copy web admin files
    56  COPY --from=base $VTROOT/web /vt/web/
    57  
    58  # copy vitess config
    59  COPY --from=base $VTROOT/config/init_db.sql /vt/config/
    60  
    61  # my.cnf include files
    62  COPY --from=base $VTROOT/config/mycnf /vt/config/mycnf
    63  
    64  # add vitess user and add permissions
    65  RUN groupadd -r --gid 2000 vitess && useradd -r -g vitess --uid 1000 vitess && \
    66     chown -R vitess:vitess /vt;