-
Notifications
You must be signed in to change notification settings - Fork 573
/
Dockerfile_drift
49 lines (33 loc) · 1.29 KB
/
Dockerfile_drift
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
FROM golang:1.22 as builder
ARG COMMIT_SHA
RUN echo "commit sha: ${COMMIT_SHA}"
# Set the working directory
WORKDIR $GOPATH/src/github.com/diggerhq/digger
# Copy all required source, blacklist files that are not required through `.dockerignore`
COPY . .
# Get the vendor library
RUN go version
# RUN vgo install
# https://github.com/ethereum/go-ethereum/issues/2738
# Build static binary "-getmode=vendor" does not work with go-ethereum
RUN go build -ldflags="-X 'main.Version=${COMMIT_SHA}'" -o drift_exe ./ee/drift/
# Multi-stage build will just copy the binary to an alpine image.
FROM ubuntu:24.04 as runner
ENV ATLAS_VERSION v0.28.0
ARG COMMIT_SHA
WORKDIR /app
RUN apt-get update && apt-get install -y ca-certificates curl && apt-get install -y git && apt-get clean all
RUN update-ca-certificates
RUN echo "commit sha: ${COMMIT_SHA}"
# install atlas
RUN curl -sSf https://atlasgo.sh | sh
# Set gin to production
#ENV GIN_MODE=release
# Expose the running port
EXPOSE 3000
# Copy the binary to the corresponding folder
COPY --from=builder /go/src/github.com/diggerhq/digger/drift_exe /app/driftapp
COPY --from=builder /go/src/github.com/diggerhq/digger/ee/drift/scripts/entrypoint.sh /app/entrypoint.sh
ADD ee/backend/templates ./templates
# Run the binary
ENTRYPOINT ["/bin/bash", "/app/entrypoint.sh"]