# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements.  See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership.  The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License.  You may obtain a copy of the License at
#
#     http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

ARG BASE_IMAGE
ARG CERT_IMAGE

FROM $BASE_IMAGE AS base

ENV GOPATH "/go"
ENV GO111MODULE "on"
WORKDIR /src
COPY go.* ./
RUN go mod download

FROM base AS builder

RUN --mount=target=. \
            --mount=type=cache,target=/root/.cache/go-build \
            BUILD_DIR=/out make build

FROM $CERT_IMAGE AS certs
RUN apk add --no-cache ca-certificates
RUN update-ca-certificates

FROM busybox:stable-glibc

COPY --from=builder /out/banyand-server /banyand-server
COPY --from=certs /etc/ssl/certs /etc/ssl/certs

ENTRYPOINT ["/banyand-server"]