This repository was archived by the owner on Aug 17, 2025. It is now read-only.
generated from TBD54566975/tbd-project-template
-
Notifications
You must be signed in to change notification settings - Fork 11
Expand file tree
/
Copy pathDockerfile
More file actions
48 lines (35 loc) · 1.39 KB
/
Dockerfile
File metadata and controls
48 lines (35 loc) · 1.39 KB
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
# Declare build arguments at the very top
ARG RUNTIME=scratch-runtime
# Get certificates from Alpine (smaller than Ubuntu)
FROM alpine:latest@sha256:4bcff63911fcb4448bd4fdacec207030997caf25e9bea4045fa6c8c44de311d1 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:6015f66923d7afbc53558d7ccffd325d43b4e249f41a6e93eef074c9505d2233 AS ubuntu-runtime
RUN apt-get update && apt-get install -y ca-certificates
# Final stage selection
FROM ${RUNTIME}
ARG EXTRA_FILES
ARG SERVICE
CMD mkdir -p /etc/ftl/secrets /etc/ftl/config
WORKDIR /home/ubuntu/
COPY . .
# Common environment variables
ENV PATH="$PATH:/home/ubuntu"
# Service-specific configurations
EXPOSE 8892
# 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"
USER 1000:1000
# Default command
CMD ["/home/ubuntu/svc"]