The environment variable `AUTOMATION_CONFIG` has been renamed to `AUTOMATION__ENTRYPOINT` and can now also be set in `automation.toml` by specifying: ``` automation = "<path>" ``` Directly accessing the environment variables in lua in no longer possible. To pass in configuration or secrets you can now instead make use of the `variables` and `secrets` modules. To set values in these modules you can either specify them in `automation.toml`: ``` [variables] <name> = <value> [secrets] <name> = <value> ``` Note that these values will get converted to a string. You can also specify the environment variables `AUTOMATION__VARIABLES__<name>` and `AUTOMATION__SECRETS__<name>` to set variables and secrets respectively. By adding the suffix `__FILE` to the environment variable name the contents of a file can be loaded into the variable or secret. Note that variables and secrets are identical in functionality and the name difference exists purely to make it clear that secret values are meant to be kept secret.
27 lines
823 B
Docker
27 lines
823 B
Docker
FROM rust:1.89 AS base
|
|
ENV CARGO_REGISTRIES_CRATES_IO_PROTOCOL=sparse
|
|
RUN cargo install cargo-chef --locked --version 0.1.71 && \
|
|
cargo install cargo-auditable --locked --version 0.6.6
|
|
WORKDIR /app
|
|
|
|
FROM base AS planner
|
|
COPY . .
|
|
RUN cargo chef prepare --recipe-path recipe.json
|
|
|
|
FROM base AS builder
|
|
# HACK: Now we can use unstable feature while on stable rust!
|
|
ENV RUSTC_BOOTSTRAP=1
|
|
COPY --from=planner /app/recipe.json recipe.json
|
|
RUN cargo chef cook --release --recipe-path recipe.json
|
|
|
|
COPY . .
|
|
ARG RELEASE_VERSION
|
|
ENV RELEASE_VERSION=${RELEASE_VERSION}
|
|
RUN cargo auditable build --release
|
|
|
|
FROM gcr.io/distroless/cc-debian12:nonroot AS runtime
|
|
COPY --from=builder /app/target/release/automation /app/automation
|
|
ENV AUTOMATION__ENTRYPOINT=/app/config.lua
|
|
COPY ./config.lua /app/config.lua
|
|
CMD [ "/app/automation" ]
|