Geen omschrijving

Dockerfile 1.2KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. FROM golang:1.24 as builder
  2. # Add files
  3. RUN mkdir /app
  4. RUN mkdir /app_sdk
  5. WORKDIR /app
  6. ADD ./go-app/main.go /app
  7. ADD ./go-app/walkoff.go /app
  8. ADD ./go-app/docker.go /app
  9. ADD ./go-app/go.mod /app
  10. # Required files for code generation
  11. RUN wget -O /app_sdk/app_base.py https://raw.githubusercontent.com/Shuffle/app_sdk/refs/heads/main/shuffle_sdk/shuffle_sdk.py
  12. ADD ./app_gen /app_gen
  13. RUN go mod download
  14. RUN go mod tidy
  15. # From November 2022, CGO is enabled due to packages
  16. # that we use requiring it. This is a temporary fix
  17. # and makes us HAVE to install libc compatibility packages farther down.
  18. RUN CGO_ENABLED=0 GOOS=linux go build -a -installsuffix cgo -o shufflebackend .
  19. # Certificate build - gets required certs
  20. FROM alpine:latest as certs
  21. RUN apk add --update --no-scripts ca-certificates
  22. # Sets up the final image
  23. FROM alpine:3.22.2
  24. # FIXME: Install cgo because CGO_ENABLED=1 during build
  25. RUN apk add --no-cache libc6-compat
  26. RUN apk add --no-cache libstdc++
  27. COPY --from=builder /app/ /app
  28. COPY --from=builder /app_sdk/ /app_sdk
  29. COPY --from=builder /app_gen/ /app_gen
  30. COPY --from=certs /etc/ssl/certs/ca-certificates.crt /etc/ssl/certs/ca-certificates.crt
  31. WORKDIR /app
  32. EXPOSE 5001
  33. CMD ["./shufflebackend"]