1- FROM rust:latest as build
1+ FROM rust:latest AS build
22
33RUN apt-get update && apt-get install -y \
44 libssl-dev \
@@ -9,7 +9,6 @@ RUN apt-get update && apt-get install -y \
99 git \
1010 jq
1111
12- # Install latest binaryen release
1312RUN mkdir -p /tmp/binaryen \
1413 && curl -L https://github.com/WebAssembly/binaryen/releases/download/version_123/binaryen-version_123-x86_64-linux.tar.gz -o /tmp/binaryen.tar.gz \
1514 && tar -xzf /tmp/binaryen.tar.gz -C /tmp/binaryen --strip-components=1 \
@@ -21,9 +20,8 @@ RUN mkdir -p /tmp/binaryen \
2120RUN curl -fsSL https://deb.nodesource.com/setup_18.x | bash -
2221RUN apt-get install -y nodejs
2322
24- RUN curl https://rustwasm.github.io/wasm-pack/installer/init.sh -sSf | sh
25- # Keep this wasm-bindgen-cli version aligned with the latest egui release's dependency
26- RUN cargo install -f wasm-bindgen-cli --version 0.2.100
23+ # Keep this wasm-bindgen-cli version aligned with the version in Cargo.lock
24+ RUN cargo install -f wasm-bindgen-cli --version 0.2.100
2725RUN rustup target add wasm32-unknown-unknown
2826
2927RUN mkdir /app
@@ -35,6 +33,7 @@ ARG TR_MSG
3533ENV TR_MSG=$TR_MSG
3634ARG TR_ENV
3735ENV TR_ENV=$TR_ENV
36+ ENV SQLX_OFFLINE="true"
3837
3938ADD truncate_server /app/truncate_server
4039ADD truncate_client /app/truncate_client
@@ -43,26 +42,28 @@ ADD truncate_core /app/truncate_core
4342ADD dict_builder /app/dict_builder
4443ADD Cargo.* /app
4544
45+ RUN cargo build --release -p truncate_server
46+
4647ADD web_client /app/web_client
4748ADD .backstage /app/.backstage
4849RUN chmod +x .backstage/build-web-client.sh
4950ENV TRUNC_OPT=true
5051RUN .backstage/build-web-client.sh
5152
52- # Thin Docker image for runtime
53-
54- FROM debian:bullseye-slim
53+ # runtime image
5554
56- RUN apt-get update && apt-get install -y curl debian-keyring debian-archive-keyring apt-transport-https \
57- && curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/gpg.key' | gpg --dearmor -o /usr/share/keyrings/caddy-stable-archive-keyring.gpg \
58- && curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/debian.deb.txt' | tee /etc/apt/sources.list.d/caddy-stable.list \
59- && apt update \
60- && apt install caddy
55+ FROM debian:bookworm-slim
6156
62- RUN mkdir /app
63- WORKDIR /app
57+ RUN apt-get update && apt-get install -y sqlite3 && rm -rf /var/lib/apt/lists/*
6458
65- ADD Caddyfile /app
59+ COPY --from=build /app/target/release/truncate_server /usr/local/bin/
6660COPY --from=build /app/web_client/src/_site /app/web_client
6761
68- CMD caddy run
62+ RUN mkdir /truncate
63+ ADD word_definitions/defs.db.gz /truncate/defs.db.gz
64+ RUN gunzip /truncate/defs.db.gz
65+
66+ ENV STATIC_DIR=/app/web_client
67+ ENV TR_DEFS_FILE=/truncate/defs.db
68+
69+ CMD truncate_server
0 commit comments