tanguy.gerome.fi/Dockerfile

86 lines
2.6 KiB
Docker
Executable file
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Get started with a build env with Rust nightly
FROM rustlang/rust:nightly-alpine as builder
RUN apk update && \
apk add --no-cache bash curl npm libc-dev binaryen openssl openssl-dev ca-certificates
RUN npm install -g sass
RUN curl --proto '=https' --tlsv1.3 -LsSf https://github.com/leptos-rs/cargo-leptos/releases/latest/download/cargo-leptos-installer.sh | sh
# Add the WASM target
RUN rustup target add wasm32-unknown-unknown
WORKDIR /work
COPY . .
ENV RUSTUP_PERMIT_COPY_RENAME=true
RUN RUSTFLAGS="-Ctarget-feature=-crt-static" cargo leptos build --release -vv
FROM rustlang/rust:nightly-alpine as runner
WORKDIR /app
COPY --from=builder /work/target/release/tanguy-gerome-fi /app/
COPY --from=builder /work/target/site /app/site
COPY --from=builder /work/Cargo.toml /app/
# # Get started with a build env with Rust nightly
# FROM rustlang/rust:nightly-bullseye AS builder
# # If youre using stable, use this instead
# # FROM rust:1.74-bullseye as builder
# # Install cargo-binstall, which makes it easier to install other
# # cargo extensions like cargo-leptos
# RUN wget https://github.com/cargo-bins/cargo-binstall/releases/latest/download/cargo-binstall-x86_64-unknown-linux-musl.tgz
# RUN tar -xvf cargo-binstall-x86_64-unknown-linux-musl.tgz
# RUN cp cargo-binstall /usr/local/cargo/bin
# # Install required tools
# RUN apt-get update -y \
# && apt-get install -y --no-install-recommends clang
# # Install cargo-leptos
# RUN cargo binstall cargo-leptos -y
# # Add the WASM target
# RUN rustup target add wasm32-unknown-unknown
# # Make an /app dir, which everything will eventually live in
# RUN mkdir -p /app
# WORKDIR /app
# COPY . .
# # Build the app
# RUN cargo leptos build --release -vv
# FROM debian:bullseye-slim AS runtime
# WORKDIR /app
# RUN apt-get update -y \
# && apt-get install -y --no-install-recommends openssl libssl-dev ca-certificates \
# && apt-get autoremove -y \
# && apt-get clean -y \
# && rm -rf /var/lib/apt/lists/*
# # -- NB: update binary name from "leptos_start" to match your app name in Cargo.toml --
# # Copy the server binary to the /app directory
# COPY --from=builder /app/target/release/tanguy-gerome-fi /app/
# # /target/site contains our JS/WASM/CSS, etc.
# COPY --from=builder /app/target/site /app/site
# # Copy Cargo.toml if its needed at runtime
# COPY --from=builder /app/Cargo.toml /app/
# Set any required env variables and
ENV RUST_LOG="info"
ENV LEPTOS_SITE_ADDR="0.0.0.0:8080"
ENV LEPTOS_SITE_ROOT="site"
EXPOSE 8080
# -- NB: update binary name from "leptos_start" to match your app name in Cargo.toml --
# Run the server
CMD ["/app/tanguy-gerome-fi"]