weather poller application deploy on kubernetes. and weather api with ssl
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
- FROM --platform=$BUILDPLATFORM golang:1.16.0-alpine3.13 AS builder
- # ex. amd64
- ARG TARGETARCH
- # ex. linux/amd64
- ARG BUILDPLATFORM
-
- RUN apk update && \
- apk add --no-cache git ca-certificates make tzdata gcc libc-dev && \
- apk add --no-cache -X http://dl-cdn.alpinelinux.org/alpine/edge/testing cfssl && \
- update-ca-certificates
-
- ENV USER=appuser
- ENV UID=10001
- ENV GID=10001
- WORKDIR /data
-
- RUN addgroup \
- --gid "${GID}" \
- "${USER}" && \
- adduser \
- --disabled-password \
- --gecos "" \
- --home "/nonexistent" \
- --shell "/sbin/nologin" \
- --no-create-home \
- --uid "${UID}" \
- -G "${USER}" \
- "${USER}"
-
- COPY Makefile .
- COPY certs/ certs/
- RUN make gen-cert
-
- COPY go.mod .
- COPY go.sum .
- RUN make dependencies
-
- ARG WEATHER_VERSION
- COPY . .
- # RUN make build-$BINARYNAME GOARCH=$TARGETARCH GOOS=$(echo $BUILDPLATFORM | cut -d'/' -f1) LDFLAGS='-extldflags="-static"'
- RUN make build-weather \
- GOARCH=$TARGETARCH \
- GOOS=$(echo $BUILDPLATFORM | cut -d'/' -f1) \
- GOBUILDFLAGS=" -a -tags netgo,prod -installsuffix netgo" \
- LDFLAGS="-w -s -d -X go/weather/internal/version.Version=$WEATHER_VERSION"
-
- FROM alpine
-
- USER appuser:appuser
-
- COPY --from=builder /usr/share/zoneinfo /usr/share/zoneinfo
- COPY --from=builder /etc/ssl/certs/ca-certificates.crt /etc/ssl/certs/
- COPY --from=builder /etc/passwd /etc/passwd
- COPY --from=builder /etc/group /etc/group
- COPY --from=builder --chown=appuser:appuser /data/bin/* /go/bin/weather
- COPY --from=builder --chown=appuser:appuser /data/certs/out/weather* /go/certs/out/
-
- WORKDIR /go
- ENTRYPOINT ["/go/bin/weather"]
|