Ctrl K
ComunidadGuías…

Dockerfile_backend

Rama develop · réplica de lectura del repositorio original.

Archivo original ↗Preguntar a KiBot
FROM golang:1.25.6 as builder
ARG COMMIT_SHA
RUN echo "commit sha: ${COMMIT_SHA}"

# Set the working directory
WORKDIR $GOPATH/src/github.com/diggerhq/digger

# Copy go.mod/go.sum first for better layer caching
COPY go.mod go.sum ./
RUN go mod download

# 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 --mount=type=cache,target=/root/.cache/go-build \
    --mount=type=cache,target=/go/pkg/mod \
    go build -ldflags="-X 'main.Version=${COMMIT_SHA}'" -o backend_exe ./backend/

# Build the projects refresh service binary and ship it in the image.
# This is required for "project cache local exec" mode, which expects to exec
# the refresh service locally within the container.
RUN --mount=type=cache,target=/root/.cache/go-build \
    --mount=type=cache,target=/go/pkg/mod \
    go build -ldflags="-X 'main.Version=${COMMIT_SHA}'" -o /tmp/projects_refesh_main ./background/projects-refresh-service

# Multi-stage build will just copy the binary to an alpine image.
FROM ubuntu:24.04 as runner
ENV ATLAS_VERSION v0.38.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/backend_exe /app/backend
COPY --from=builder /tmp/projects_refesh_main /app/projects_refesh_main
COPY --from=builder /go/src/github.com/diggerhq/digger/backend/scripts/entrypoint.sh /app/entrypoint.sh
COPY --from=builder /go/src/github.com/diggerhq/digger/backend/migrations /app/migrations
ADD backend/templates ./templates

# Run the binary
ENTRYPOINT ["/bin/bash", "/app/entrypoint.sh"]