generated from TBD54566975/tbd-project-template
-
Notifications
You must be signed in to change notification settings - Fork 10
/
Copy pathDockerfile
47 lines (35 loc) · 1.35 KB
/
Dockerfile
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
# Declare build arguments at the very top
ARG RUNTIME=scratch-runtime
# Get certificates from Alpine (smaller than Ubuntu)
FROM alpine:latest@sha256:56fa17d2a7e7f168a043a2712e63aed1f8543aeafdcee47c58dcffe38ed51099 AS certs
# No need to update here, we just use this for the certs
RUN apk add ca-certificates
# Used for everything except ftl-runner
FROM scratch AS scratch-runtime
COPY --from=certs /etc/ssl/certs/ca-certificates.crt /etc/ssl/certs/
# Used for ftl-runner
FROM ubuntu:24.04@sha256:72297848456d5d37d1262630108ab308d3e9ec7ed1c3286a32fe09856619a782 AS ubuntu-runtime
RUN apt-get update && apt-get install -y ca-certificates
# Final stage selection
FROM ${RUNTIME}
ARG EXTRA_FILES
ARG SERVICE
WORKDIR /home/ubuntu/
COPY . .
# Common environment variables
ENV PATH="$PATH:/home/ubuntu"
# Service-specific configurations
EXPOSE 8891
EXPOSE 8892
EXPOSE 8893
# Environment variables for all (most) services
ENV FTL_ENDPOINT="http://host.docker.internal:8892"
ENV FTL_BIND=http://0.0.0.0:8892
ENV FTL_ADVERTISE=http://127.0.0.1:8892
ENV FTL_DSN="postgres://host.docker.internal/ftl?sslmode=disable&user=postgres&password=secret"
# Controller-specific configurations
ENV FTL_CONTROLLER_CONSOLE_URL="*"
# Provisioner-specific configurations
ENV FTL_PROVISIONER_PLUGIN_CONFIG_FILE="/home/ubuntu/ftl-provisioner-config.toml"
# Default command
CMD ["/home/ubuntu/svc"]