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 && \
|
||||
apt update && \
|
||||
apt install -y musl-tools musl-dev && \
|
||||
update-ca-certificates
|
||||
apt-get update && \
|
||||
apt-get install -y --no-install-recommends musl-tools musl-dev ca-certificates && \
|
||||
rm -rf /var/lib/apt/lists/*
|
||||
|
||||
COPY ./src ./src
|
||||
COPY ./Cargo.lock .
|
||||
COPY ./Cargo.toml .
|
||||
WORKDIR /app
|
||||
COPY Cargo.toml Cargo.lock ./
|
||||
COPY src ./src
|
||||
|
||||
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