Refactor Dockerfile for multi-stage build

This commit is contained in:
geraldwuhoo 2024-08-16 09:07:24 -07:00 committed by Matt Brubeck
parent dbd6eab17f
commit fcbf73dcef
4 changed files with 30 additions and 11 deletions

7
.dockerignore Normal file
View file

@ -0,0 +1,7 @@
**
!src/**
!tools/docker/**
!Cross.toml
!Cargo.toml
!Cargo.lock

18
Dockerfile Normal file
View file

@ -0,0 +1,18 @@
FROM docker.io/library/rust:alpine AS builder
# RUN wget -O source.tar.gz $(wget -qO- https://api.github.com/repos/mbrubeck/agate/releases/latest | sed -nE 's/^.*"tarball_url"\s*:\s*"([^"]+)".*$/\1/p')&& tar xzf source.tar.gz && \
# mv mbrubeck-agate-* /agate
WORKDIR /agate
COPY src src
COPY Cargo.toml .
COPY Cargo.lock .
COPY Cross.toml .
RUN apk --no-cache add libc-dev && \
cargo install --target x86_64-unknown-linux-musl --path .
FROM docker.io/library/alpine:latest
COPY --from=builder /usr/local/cargo/bin/agate /usr/bin/agate
WORKDIR /app
COPY tools/docker/start.sh /app
ENTRYPOINT ["/bin/sh", "start.sh"]

View file

@ -1,8 +0,0 @@
FROM alpine:latest
RUN apk add cargo && wget -O source.tar.gz $(wget -qO- https://api.github.com/repos/mbrubeck/agate/releases/latest | sed -nE 's/^.*"tarball_url"\s*:\s*"([^"]+)".*$/\1/p')&& tar xzf source.tar.gz && mv /mbrubeck-agate-* /agate && cd agate && cargo build --release
RUN cp /agate/target/release/agate /usr/bin/agate
WORKDIR /app
COPY . /app
ADD . .
ENTRYPOINT ["/bin/sh", "start.sh"]

View file

@ -1,6 +1,8 @@
#!/bin/sh
exec agate --content /gmi/ \
--hostname ${HOSTNAME} \
--lang ${LANG}
echo "Using hostname ${HOSTNAME:-localhost}"
echo "Using lang ${LANG:-en-US}"
exec agate --content /gmi/ \
--hostname "${HOSTNAME:-localhost}" \
--lang "${LANG:-en-US}"