mirror of
https://github.com/optim-enterprises-bv/databunker.git
synced 2025-10-29 17:12:22 +00:00
65 lines
2.3 KiB
Docker
65 lines
2.3 KiB
Docker
############################
|
|
# STEP 1 build executable binary
|
|
############################
|
|
FROM golang:alpine AS builder
|
|
# Install git.
|
|
# Git is required for fetching the dependencies.
|
|
RUN apk update && apk add --no-cache git gcc libc-dev
|
|
RUN go get -u github.com/fatih/structs
|
|
RUN go get -u github.com/gobuffalo/packr
|
|
RUN go get -u github.com/gobuffalo/packr/packr
|
|
RUN go get -u github.com/tidwall/gjson
|
|
RUN go get -u github.com/ttacon/libphonenumber
|
|
RUN go get -u github.com/hashicorp/go-uuid
|
|
RUN go get -u go.mongodb.org/mongo-driver/bson
|
|
RUN go get -u github.com/mattn/go-sqlite3
|
|
RUN go get -u github.com/schollz/sqlite3dump
|
|
RUN go get -u github.com/evanphx/json-patch
|
|
RUN go get -u github.com/julienschmidt/httprouter
|
|
WORKDIR $GOPATH/src/paranoidguy/databunker/src/
|
|
COPY . $GOPATH/src/paranoidguy/databunker/
|
|
# Fetch dependencies.
|
|
# Using go get.
|
|
RUN go get -d -v
|
|
# prepare web to go with packr
|
|
RUN packr
|
|
# debug
|
|
RUN find $GOPATH/src/paranoidguy/databunker/
|
|
# Build the binary.
|
|
RUN go build -o /go/bin/databunker
|
|
# clean packr
|
|
RUN packr clean
|
|
############################
|
|
# STEP 2 build a small image
|
|
############################
|
|
FROM scratch
|
|
# Copy our static executable.
|
|
COPY --from=builder /bin/busybox /bin/busybox
|
|
COPY --from=builder /bin/busybox /bin/sh
|
|
COPY --from=builder /lib/ld* /lib/
|
|
#COPY --from=builder /go/bin/dddatabunker /databunker/bin/databunker
|
|
#COPY run.sh /databunker/bin/
|
|
#COPY create-test-user.sh /databunker/bin/
|
|
COPY databunker.yaml /databunker/conf/
|
|
RUN /bin/busybox mkdir -p /databunker/data
|
|
RUN /bin/busybox mkdir -p /databunker/certs
|
|
#RUN /bin/busybox ln -s /bin/busybox /bin/sh
|
|
RUN /bin/busybox ln -s /bin/busybox /bin/addgroup
|
|
RUN /bin/busybox ln -s /bin/busybox /bin/adduser
|
|
RUN /bin/busybox ln -s /bin/busybox /bin/chown
|
|
COPY --from=builder /etc/group /etc/
|
|
COPY --from=builder /etc/ssl /etc/ssl
|
|
RUN /bin/busybox touch /etc/passwd
|
|
RUN /bin/busybox mkdir -p /tmp
|
|
RUN /bin/busybox chmod 0777 /tmp
|
|
# Create a group and user
|
|
RUN addgroup -S appgroup && adduser --no-create-home -S appuser -G appgroup
|
|
RUN chown appuser:appgroup /databunker/data
|
|
# Tell docker that all future commands should run as the appuser user
|
|
USER appuser
|
|
COPY --from=builder /go/bin/databunker /databunker/bin/databunker
|
|
COPY run.sh /databunker/bin/
|
|
EXPOSE 3000
|
|
ENTRYPOINT ["/bin/sh", "/databunker/bin/run.sh"]
|
|
#CMD ["/bin/sh", "-x", "-c", "/go/bin/databunker -init"]
|