ARG BUILD_FROM=golang:1.12-alpine3.9
ARG RUN_FROM=docker:dind

FROM ${BUILD_FROM} AS builder

ARG QEMU_ARCH=x86_64
COPY ./build/edge/tmp/qemu-${QEMU_ARCH}-static /usr/bin/
COPY . /go/src/github.com/kubeedge/kubeedge

RUN apk --no-cache update && \
apk --no-cache upgrade && \
apk --no-cache add build-base linux-headers sqlite-dev && \
CGO_ENABLED=1 go build -v -o /usr/local/bin/edge_core -ldflags="-w -s -extldflags -static" \
github.com/kubeedge/kubeedge/edge/cmd

FROM ${RUN_FROM}

LABEL maintainer="zhanghongtong <zhanghongtong@foxmail.com>"

COPY --from=builder /usr/bin/qemu* /usr/bin/

ENV GOARCHAIUS_CONFIG_PATH /etc/kubeedge/edge
ENV database.source /var/lib/kubeedge/edge.db

VOLUME ["/etc/kubeedge/certs", "/var/lib/edged", "/var/lib/kubeedge", "/var/run/docker.sock"]

COPY --from=builder /usr/local/bin/edge_core /usr/local/bin/edge_core
COPY --from=builder /go/src/github.com/kubeedge/kubeedge/edge/conf /etc/kubeedge/edge/conf

ENTRYPOINT ["edge_core"]
