github.com/sharovik/devbot@v1.0.1-0.20240308094637-4a0387c40516/Dockerfile (about)

     1  FROM --platform=linux/amd64 golang:1.21-alpine3.17 as base
     2  
     3  MAINTAINER Pavel Simzicov <sharovik89@ya.ru>
     4  
     5  # Set necessary environmet variables needed for our image
     6  ENV GO111MODULE=on \
     7      CGO_ENABLED=1 \
     8      GOOS=linux \
     9      GOARCH=amd64 \
    10      APP_PATH="/home/go/src/github.com/sharovik/devbot"
    11  
    12  WORKDIR ${APP_PATH}
    13  
    14  #I am guessing you already already aware of distroless. It is a matter of developer taste, but distroless has been something I have fallen in love with due to security and simplicity.
    15  COPY . .
    16  
    17  RUN apk add --no-cache bash && apk add --no-cache make && apk add build-base && apk add --no-cache git && apk add --no-cache tzdata
    18  
    19  RUN make build && make cleanup
    20  
    21  FROM --platform=linux/amd64 alpine:latest as run
    22  RUN apk --no-cache add ca-certificates
    23  
    24  ENV APP_PATH="/home/go/src/github.com/sharovik/devbot"
    25  
    26  WORKDIR ${APP_PATH}
    27  
    28  COPY --from=base ${APP_PATH}/bin ${APP_PATH}/bin
    29  COPY --from=base ${APP_PATH}/.env ${APP_PATH}/.env
    30  COPY --from=base ${APP_PATH}/devbot.sqlite ${APP_PATH}/devbot.sqlite
    31  
    32  # Command to run when starting the container
    33  ENTRYPOINT ["./bin/devbot-current-system"]