Skip to content

Commit

Permalink
docker
Browse files Browse the repository at this point in the history
  • Loading branch information
cn-kali-team committed Feb 11, 2024
1 parent 57b0099 commit 1fd16a4
Show file tree
Hide file tree
Showing 2 changed files with 7 additions and 21 deletions.
15 changes: 4 additions & 11 deletions Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -2,21 +2,14 @@ FROM rust:latest AS server

WORKDIR /prod
#为了命中docker构建缓存,先拷贝这几个文件进去
RUN --mount=type=cache,target=/var/lib/cache/ apt-get update &&\
RUN apt-get update &&\
apt-get install -y --no-install-recommends gcc-multilib xz-utils liblz4-tool libc6-dev libssl-dev default-libmysqlclient-dev pkg-config musl-tools patchelf build-essential zlib1g-dev ca-certificates
COPY .cargo .cargo
COPY nvd-server/Cargo.toml Cargo.toml
COPY nvd-model/ /nvd-model
RUN --mount=type=cache,target=/var/cache/buildkit \
CARGO_HOME=/var/cache/buildkit/cargo \
CARGO_TARGET_DIR=/var/cache/buildkit/target \
cargo fetch
RUN cargo fetch
COPY nvd-server/src src
RUN --mount=type=cache,target=/var/cache/buildkit \
CARGO_HOME=/var/cache/buildkit/cargo \
CARGO_TARGET_DIR=/var/cache/buildkit/target \
cargo build --release --all-features &&\
cp -v /var/cache/buildkit/target/release/nvd-server .
RUN cargo build --release --all-features

FROM rust:slim-buster AS yew

Expand All @@ -41,7 +34,7 @@ RUN trunk build --release --no-sri
FROM debian:latest AS runner
WORKDIR /prod
ENV TZ=Asia/Shanghai
RUN --mount=type=cache,target=/var/lib/cache/ apt-get update &&\
RUN apt-get update &&\
apt-get install -y --no-install-recommends libssl-dev default-libmysqlclient-dev ca-certificates cron curl
COPY --from=server /prod/nvd-server /prod
COPY --from=yew /prod/dist /prod/dist
Expand Down
13 changes: 3 additions & 10 deletions DockerfileHelper
Original file line number Diff line number Diff line change
Expand Up @@ -7,23 +7,16 @@ RUN --mount=type=cache,target=/var/lib/cache/ apt-get update &&\
COPY .cargo .cargo
COPY helper/Cargo.toml Cargo.toml
COPY nvd-model/ /nvd-model
RUN --mount=type=cache,target=/var/cache/buildkit \
CARGO_HOME=/var/cache/buildkit/cargo \
CARGO_TARGET_DIR=/var/cache/buildkit/target \
cargo fetch
RUN cargo fetch
COPY helper/src src
RUN --mount=type=cache,target=/var/cache/buildkit \
CARGO_HOME=/var/cache/buildkit/cargo \
CARGO_TARGET_DIR=/var/cache/buildkit/target \
cargo build --release &&\
cp -v /var/cache/buildkit/target/release/helper .
RUN cargo build --release

# Use any runner as you want
# But beware that some images have old glibc which makes rust unhappy
FROM debian:latest AS runner
WORKDIR /prod
ENV TZ=Asia/Shanghai
RUN --mount=type=cache,target=/var/lib/cache/ apt-get update &&\
RUN apt-get update &&\
apt-get install -y --no-install-recommends libssl-dev default-libmysqlclient-dev ca-certificates
COPY --from=helper /prod/helper /prod
ENTRYPOINT [ "/prod/helper" ]

0 comments on commit 1fd16a4

Please sign in to comment.