misc: optimized dockerfile, gh actions for cargo
This commit is contained in:
18
.github/workflows/cargo-check.yml
vendored
Normal file
18
.github/workflows/cargo-check.yml
vendored
Normal file
@@ -0,0 +1,18 @@
|
|||||||
|
name: Cargo Check
|
||||||
|
|
||||||
|
on:
|
||||||
|
push:
|
||||||
|
pull_request:
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
cargo-check:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- name: Checkout repository
|
||||||
|
uses: actions/checkout@v4
|
||||||
|
|
||||||
|
- name: Install Rust toolchain
|
||||||
|
uses: dtolnay/rust-toolchain@stable
|
||||||
|
|
||||||
|
- name: Run cargo check
|
||||||
|
run: cargo check --all-targets
|
||||||
20
.github/workflows/cargo-fmt.yml
vendored
Normal file
20
.github/workflows/cargo-fmt.yml
vendored
Normal file
@@ -0,0 +1,20 @@
|
|||||||
|
name: Cargo Format Check
|
||||||
|
|
||||||
|
on:
|
||||||
|
push:
|
||||||
|
pull_request:
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
cargo-fmt:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- name: Checkout repository
|
||||||
|
uses: actions/checkout@v4
|
||||||
|
|
||||||
|
- name: Install Rust toolchain with rustfmt
|
||||||
|
uses: dtolnay/rust-toolchain@stable
|
||||||
|
with:
|
||||||
|
components: rustfmt
|
||||||
|
|
||||||
|
- name: Run cargo fmt check
|
||||||
|
run: cargo fmt --all -- --check
|
||||||
21
Dockerfile
21
Dockerfile
@@ -1,14 +1,19 @@
|
|||||||
FROM rust:1.92 AS build
|
FROM rust:1.92 AS builder
|
||||||
|
|
||||||
RUN rustup target add x86_64-unknown-linux-musl && \
|
RUN rustup target add x86_64-unknown-linux-musl && \
|
||||||
apt update && \
|
apt-get update && \
|
||||||
apt install -y musl-tools musl-dev && \
|
apt-get install -y --no-install-recommends musl-tools musl-dev ca-certificates && \
|
||||||
update-ca-certificates
|
rm -rf /var/lib/apt/lists/*
|
||||||
|
|
||||||
COPY ./src ./src
|
WORKDIR /app
|
||||||
COPY ./Cargo.lock .
|
COPY Cargo.toml Cargo.lock ./
|
||||||
COPY ./Cargo.toml .
|
COPY src ./src
|
||||||
|
|
||||||
RUN cargo build --target x86_64-unknown-linux-musl --release
|
RUN cargo build --target x86_64-unknown-linux-musl --release
|
||||||
|
|
||||||
ENTRYPOINT ["./target/x86_64-unknown-linux-musl/release/connect4-moderator-server"]
|
FROM scratch AS runtime
|
||||||
|
|
||||||
|
COPY --from=builder /etc/ssl/certs/ca-certificates.crt /etc/ssl/certs/
|
||||||
|
COPY --from=builder /app/target/x86_64-unknown-linux-musl/release/connect4-moderator-server /connect4-moderator-server
|
||||||
|
|
||||||
|
ENTRYPOINT ["/connect4-moderator-server"]
|
||||||
|
|||||||
Reference in New Issue
Block a user