Init
This commit is contained in:
commit
e82f35da2a
78 changed files with 10821 additions and 0 deletions
81
backend/Dockerfile
Normal file
81
backend/Dockerfile
Normal file
|
@ -0,0 +1,81 @@
|
|||
# FROM docker.io/lukemathwalker/cargo-chef:latest-rust-1.69.0 as mold
|
||||
# SHELL ["/bin/bash", "-o", "pipefail", "-c"]
|
||||
# WORKDIR /tmp
|
||||
# ARG MOLD_VERSION="1.11.0"
|
||||
# RUN wget -qO- https://github.com/rui314/mold/archive/refs/tags/v${MOLD_VERSION}.tar.gz | tar zxf -
|
||||
# WORKDIR /tmp/mold-${MOLD_VERSION}/build
|
||||
# RUN ../install-build-deps.sh \
|
||||
# && cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_CXX_COMPILER=c++ .. \
|
||||
# && cmake --build . -j "$(nproc)" \
|
||||
# && cmake --install .
|
||||
|
||||
FROM docker.io/lukemathwalker/cargo-chef:latest-rust-1.69.0 as chef
|
||||
SHELL ["/bin/bash", "-o", "pipefail", "-c"]
|
||||
# hadolint ignore=DL3009
|
||||
RUN apt-get update \
|
||||
&& apt-get install -y --no-install-recommends \
|
||||
lsb-release=11.1.0 \
|
||||
wget=1.21-1+deb11u1 \
|
||||
software-properties-common=0.96.20.2-2.1 \
|
||||
gnupg=2.2.27-2+deb11u2 \
|
||||
clang=1:11.0-51+nmu5
|
||||
WORKDIR /tmp
|
||||
ARG MOLD_VERSION="1.11.0"
|
||||
RUN wget -qO- https://github.com/rui314/mold/releases/download/v${MOLD_VERSION}/mold-${MOLD_VERSION}-x86_64-linux.tar.gz | tar xzf - \
|
||||
&& cp -RT ./mold-${MOLD_VERSION}-x86_64-linux /usr \
|
||||
&& rm -rf ./mold-${MOLD_VERSION}-x86_64-linux
|
||||
WORKDIR /
|
||||
|
||||
FROM chef as diesel
|
||||
RUN cargo install diesel_cli --version 2.0.1 --no-default-features --features postgres
|
||||
|
||||
FROM chef as planner
|
||||
WORKDIR /usr/src/gitea_pages
|
||||
RUN mkdir -p ./src/bin && touch ./src/main.rs
|
||||
COPY ./Cargo.toml ./Cargo.lock ./
|
||||
RUN cargo chef prepare --recipe-path recipe.json
|
||||
|
||||
FROM chef as builder
|
||||
WORKDIR /usr/src/gitea_pages
|
||||
COPY ./.cargo ./.cargo
|
||||
COPY --from=planner /usr/src/gitea_pages/recipe.json .
|
||||
RUN cargo chef cook --release --recipe-path recipe.json
|
||||
COPY --from=planner /usr/src/gitea_pages/Cargo.toml /usr/src/gitea_pages/Cargo.lock ./
|
||||
# RUN cargo build --release --frozen --offline
|
||||
COPY ./assets ./assets
|
||||
COPY ./templates ./templates
|
||||
COPY ./src ./src
|
||||
RUN cargo build --release --frozen --offline
|
||||
|
||||
FROM docker.io/debian:bullseye-slim as runner
|
||||
LABEL maintainer="Dominic Grimm <dominic@dergrimm.net>" \
|
||||
org.opencontainers.image.description="Gitea Pages" \
|
||||
org.opencontainers.image.licenses="GPLv3" \
|
||||
org.opencontainers.image.source="https://git.dergrimm.net/dergrimm/gitea_pages" \
|
||||
org.opencontainers.image.url="https://git.dergrimm.net/dergrimm/gitea_pages"
|
||||
SHELL ["/bin/bash", "-o", "pipefail", "-c"]
|
||||
RUN apt-get update && \
|
||||
apt-get install --no-install-recommends -y \
|
||||
libpq5=13.10-0+deb11u1 \
|
||||
git=1:2.30.2-1+deb11u2 \
|
||||
netcat=1.10-46 \
|
||||
ca-certificates=20210119 \
|
||||
wget=1.21-1+deb11u1 && \
|
||||
wget -qO- https://get.docker.com/ | sh && \
|
||||
apt-get clean && \
|
||||
apt-get autoremove -y && \
|
||||
rm -rf /var/lib/apt/lists/* && \
|
||||
rm -rf /var/lib/apt/ && \
|
||||
rm -rf /var/lib/dpkg/ && \
|
||||
rm -rf /var/lib/cache/ && \
|
||||
rm -rf /var/lib/log/
|
||||
WORKDIR /usr/local/bin
|
||||
COPY --from=diesel /usr/local/cargo/bin/diesel .
|
||||
WORKDIR /opt/gitea_pages
|
||||
RUN wget -q --show-progress https://raw.githubusercontent.com/vishnubob/wait-for-it/81b1373f17855a4dc21156cfe1694c31d7d1792e/wait-for-it.sh && \
|
||||
chmod +x wait-for-it.sh
|
||||
COPY ./run.sh ./migrate.sh ./
|
||||
RUN chmod +x ./run.sh ./migrate.sh
|
||||
COPY ./migrations ./migrations
|
||||
COPY --from=builder /usr/src/gitea_pages/target/release/gitea_pages ./bin/gitea_pages
|
||||
EXPOSE 8080 8081
|
Loading…
Add table
Add a link
Reference in a new issue