mirror of
https://github.com/storytold/artcraft.git
synced 2026-11-04 01:18:34 +00:00
49 lines
1021 B
Docker
49 lines
1021 B
Docker
FROM ubuntu:focal as build
|
|
|
|
ARG DEBIAN_FRONTEND=noninteractive
|
|
|
|
WORKDIR /build
|
|
|
|
RUN apt-get update \
|
|
&& apt-get install -y \
|
|
build-essential \
|
|
curl \
|
|
ffmpeg \
|
|
gdb \
|
|
libssl-dev \
|
|
libssl1.1 \
|
|
pkg-config \
|
|
unzip \
|
|
vim \
|
|
wget
|
|
|
|
RUN apt-cache search libssl | grep libssl
|
|
|
|
RUN curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs \
|
|
| sh -s -- --default-toolchain stable -y
|
|
|
|
COPY Cargo.toml .
|
|
|
|
# Prefetch dependencies so code iteration is fast
|
|
RUN $HOME/.cargo/bin/cargo fetch
|
|
|
|
# Pre-build the dependencies.
|
|
# Code changes won't make us rebuild them.
|
|
RUN set -x \
|
|
&& mkdir -p src \
|
|
&& echo 'fn main() { println!("rebuild me!"); }' > src/main.rs \
|
|
&& $HOME/.cargo/bin/cargo build --release
|
|
|
|
# Static image assets
|
|
COPY assets/ assets/
|
|
|
|
# Code
|
|
COPY src/ src/
|
|
|
|
# If the timestamps are older on actual src/ files than
|
|
# cached "fake build" above, nothing gets built.
|
|
RUN touch src/main.rs
|
|
|
|
RUN $HOME/.cargo/bin/cargo build --release
|
|
|