mirror of
https://github.com/c9s/bbgo.git
synced 2024-11-10 17:13:51 +00:00
a0a96abeec
There's no env in alpine image, causes the program throw error 'No USER or USERNAME' in containers. * Create and assign env in bbgo image * Fallback to use the default user 'bbgo' when env or was unassigned
32 lines
910 B
Docker
32 lines
910 B
Docker
# First stage container
|
|
FROM golang:1.17.11-alpine3.16 AS builder
|
|
RUN apk add --no-cache git ca-certificates gcc libc-dev pkgconfig
|
|
# gcc is for github.com/mattn/go-sqlite3
|
|
# ADD . $GOPATH/src/github.com/c9s/bbgo
|
|
|
|
WORKDIR $GOPATH/src/github.com/c9s/bbgo
|
|
ARG GO_MOD_CACHE
|
|
ENV WORKDIR=$GOPATH/src/github.com/c9s/bbgo
|
|
ENV GOPATH_ORIG=$GOPATH
|
|
ENV GOPATH=${GO_MOD_CACHE:+$WORKDIR/$GO_MOD_CACHE}
|
|
ENV GOPATH=${GOPATH:-$GOPATH_ORIG}
|
|
ENV CGO_ENABLED=1
|
|
RUN cd $WORKDIR && go get github.com/mattn/go-sqlite3
|
|
ADD . .
|
|
RUN go build -o $GOPATH_ORIG/bin/bbgo ./cmd/bbgo
|
|
|
|
# Second stage container
|
|
FROM alpine:3.16
|
|
|
|
# Create the default user 'bbgo' and assign to env 'USER'
|
|
ENV USER=bbgo
|
|
RUN adduser -D -G wheel "$USER"
|
|
USER ${USER}
|
|
|
|
COPY --from=builder /go/bin/bbgo /usr/local/bin
|
|
|
|
WORKDIR /home/${USER}
|
|
ENTRYPOINT ["/usr/local/bin/bbgo"]
|
|
CMD ["run", "--config", "/config/bbgo.yaml", "--no-compile"]
|
|
# vim:filetype=dockerfile:
|