From 27de71ba013b2a542eaa53468c49ee6059c76930 Mon Sep 17 00:00:00 2001 From: Hugo Trentesaux <hugo@trentesaux.fr> Date: Tue, 21 May 2024 22:16:10 +0200 Subject: [PATCH] build debian package in docker --- Dockerfile.deb | 17 +++++++++++++++++ docker/build.sh | 18 ++++-------------- docker/debian.sh | 12 ++++++++++++ 3 files changed, 33 insertions(+), 14 deletions(-) create mode 100644 Dockerfile.deb create mode 100755 docker/debian.sh diff --git a/Dockerfile.deb b/Dockerfile.deb new file mode 100644 index 0000000..353352b --- /dev/null +++ b/Dockerfile.deb @@ -0,0 +1,17 @@ +# build based on debian buster to build debian package +FROM rust:slim-buster +WORKDIR /app +RUN --mount=type=cache,target=/root/.cargo \ + cargo install cargo-deb +COPY Cargo.toml Cargo.lock ./ +RUN --mount=type=cache,target=/app/target \ + --mount=type=cache,target=/root/.cargo/registry \ + mkdir src \ + && echo "fn main() {}" > src/main.rs \ + && cargo build --release \ + && rm -r src +COPY ./res ./res +COPY ./src ./src +RUN cargo build --release +RUN cargo deb --no-build +RUN rm -r /app/target/release \ No newline at end of file diff --git a/docker/build.sh b/docker/build.sh index a327c02..a46e5c3 100755 --- a/docker/build.sh +++ b/docker/build.sh @@ -1,15 +1,5 @@ -#!/bin/bash +#!/bin/sh -# Also generated by chatGPT - -# Name of your Docker image -IMAGE_NAME="gcli" - -# Version of your Docker image -IMAGE_VERSION="latest" - -# Build and tag the Docker image using Docker Buildx -docker buildx build -t "$IMAGE_NAME:$IMAGE_VERSION" . - -# Optionally, you can push the image to a Docker registry -# docker push "$IMAGE_NAME:$IMAGE_VERSION" +IMAGE_NAME=gcli +IMAGE_VERSION=latest +docker buildx build -t $IMAGE_NAME:$IMAGE_VERSION . diff --git a/docker/debian.sh b/docker/debian.sh new file mode 100755 index 0000000..928f9c7 --- /dev/null +++ b/docker/debian.sh @@ -0,0 +1,12 @@ +#!/bin/sh + +# build debian package +VERSION=0.2.10-1 +IMAGE_NAME=gcli_deb +IMAGE_VERSION=latest +docker buildx build -f Dockerfile.deb -t $IMAGE_NAME:$IMAGE_VERSION . + +mkdir -p ./target/debian +id=$(docker create $IMAGE_NAME:$IMAGE_VERSION) +docker cp $id:/app/target/debian/gcli_${VERSION}_amd64.deb ./target/debian +docker rm -v $id \ No newline at end of file -- GitLab