diff --git a/.gitignore b/.gitignore index 1e68bfc..2f6e888 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,4 @@ target data -lnrecc.log \ No newline at end of file +lnrecc.log +releases \ No newline at end of file diff --git a/Dockerfile b/Dockerfile index ff6c9e7..1d121fa 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,17 +1,3 @@ -FROM rust:1.81-slim-bullseye AS build - -RUN apt-get update && apt-get install -y \ - pkg-config \ - libssl-dev - -WORKDIR /usr/src/app - -COPY src src -COPY Cargo.toml . -COPY Cargo.lock . - -RUN cargo build --release - FROM debian:bullseye-slim RUN apt-get update && apt-get install -y \ @@ -32,6 +18,6 @@ RUN adduser \ && chown -R appuser . USER appuser -COPY --from=build /usr/src/app/target/release/lnrecc . +COPY --from=lnrecc-build /usr/src/app/target/release/lnrecc . ENTRYPOINT ["lnrecc"] \ No newline at end of file diff --git a/Dockerfile-build b/Dockerfile-build new file mode 100644 index 0000000..3241396 --- /dev/null +++ b/Dockerfile-build @@ -0,0 +1,13 @@ +FROM rust:1.81-slim-bullseye AS build + +RUN apt-get update && apt-get install -y \ + pkg-config \ + libssl-dev + +WORKDIR /usr/src/app + +COPY src src +COPY Cargo.toml . +COPY Cargo.lock . + +RUN cargo build --release \ No newline at end of file diff --git a/build.sh b/build.sh new file mode 100755 index 0000000..0353263 --- /dev/null +++ b/build.sh @@ -0,0 +1,29 @@ +#!/bin/bash + +# ARM64 darwin +cargo build --release + +APP_NAME="lnrecc" +VERSION="v1.0.0" +ARCHIVE_NAME="releases/${APP_NAME}-darwin-arm64-${VERSION}.tar.gz" + +tar -czvf $ARCHIVE_NAME -C target/release $APP_NAME + +# AMD64 linux + +BUILD_IMAGE_NAME="lnrecc-build" +ARCHIVE_NAME="releases/${APP_NAME}-linux-amd64-${VERSION}.tar.gz" + +docker build -f Dockerfile-build -t ${BUILD_IMAGE_NAME} --platform linux/amd64 . + +container_id=$(docker run -d ${BUILD_IMAGE_NAME}) + +docker cp $container_id:/usr/src/app/target/release/$APP_NAME $APP_NAME + +tar -czvf $ARCHIVE_NAME $APP_NAME + +# cleanup + +rm $APP_NAME +docker rm $container_id +docker rmi $BUILD_IMAGE_NAME \ No newline at end of file