streamlining container image builds with hacky dummy file

master
lza_menace 4 년 전
부모 16a70c0afa
커밋 8bc2e324d2

@ -3,6 +3,9 @@ name = "wownero-explorer"
version = "0.1.0"
authors = ["lza_menace <lza_menace@protonmail.com>"]
edition = "2018"
[[bin]]
name = "wownero-explorer"
path = "src/main.rs"
[dependencies]
rocket = "0.4.4"

@ -1,22 +1,32 @@
FROM ubuntu:19.10 as builder
# Install required packages
RUN apt-get update && apt-get install -y build-essential
RUN apt-get install -y curl git
# Setup app user and workspace
RUN useradd -m -d /home/wownero-explorer wownero-explorer
RUN mkdir -p /srv && chown -R wownero-explorer:wownero-explorer /srv
RUN mkdir -p /srv/wownero-explorer && chown -R wownero-explorer:wownero-explorer /srv
USER wownero-explorer
WORKDIR /srv
WORKDIR /srv/wownero-explorer
# Install Rust
RUN curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | RUSTUP_HOME=/home/wownero-explorer/.rustup sh -s -- -y
RUN git clone https://git.wownero.com/lza_menace/wownero-explorer && \
cd wownero-explorer && \
~/.cargo/bin/rustup override set nightly && \
~/.cargo/bin/cargo build --release
FROM ubuntu:19.10
# Setup dummy build and perform release
COPY dummy.rs .
COPY Cargo.toml .
COPY Cargo.lock .
RUN sed -i 's_src/main.rs_dummy.rs_' Cargo.toml
RUN ~/.cargo/bin/rustup override set nightly
RUN ~/.cargo/bin/cargo build --release
# Put real source onto image and perform release
RUN sed -i 's_dummy.rs_src/main.rs_' Cargo.toml
COPY src src
RUN ~/.cargo/bin/cargo build --release
FROM ubuntu:19.10
COPY --from=builder /srv/wownero-explorer/target/release/wownero-explorer /bin/wownero-explorer
COPY static static
COPY templates templates

@ -0,0 +1 @@
fn main() {}