From 38d87ac70c657e8a6424d12deb9a00bfe7705ecc Mon Sep 17 00:00:00 2001 From: mykola2312 Date: Thu, 29 Feb 2024 20:41:00 +0200 Subject: [PATCH] improve docker configs --- Dockerfile | 28 ++++++++++++++++++---------- docker-compose-dev.yml | 9 +++++++++ compose.yml => docker-compose.yml | 0 3 files changed, 27 insertions(+), 10 deletions(-) create mode 100644 docker-compose-dev.yml rename compose.yml => docker-compose.yml (100%) diff --git a/Dockerfile b/Dockerfile index fbaea34..b49fefc 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,24 +1,32 @@ # Rust build -FROM rust:1-alpine3.19 +FROM rust:1-alpine3.19 AS builder ENV RUSTFLAGS="-C target-feature=-crt-static" RUN apk add --no-cache musl-dev openssl-dev -WORKDIR /app -COPY Cargo.toml Cargo.lock /app/ -COPY src/ /app/src +WORKDIR /usr/src/app +RUN USER=root cargo init +COPY ./Cargo.toml . +COPY Cargo.lock . +COPY src/ ./src +COPY migrations ./migrations -RUN cargo build --release +RUN touch src/main.rs && cargo build --release RUN strip target/release/mk-dl-bot # Run -FROM alpine:3.19 +FROM alpine:3.19 AS final +# Dependencies RUN apk add --no-cache libgcc RUN apk add --no-cache ffmpeg python3 py3-pip RUN pip install --break-system-packages yt-dlp -WORKDIR /app -COPY migrations /app/ -COPY --from=0 /app/target/release/mk-dl-bot /app/ +# Those directories are required by bot +RUN mkdir -p /var/lib/mk-dl-bot +RUN mkdir -p /var/log/mk-dl-bot -ENTRYPOINT ["/mk-dl-bot"] \ No newline at end of file +WORKDIR /app +COPY migrations ./migrations +COPY --from=builder /usr/src/app/target/release/mk-dl-bot . + +ENTRYPOINT ["/app/mk-dl-bot"] \ No newline at end of file diff --git a/docker-compose-dev.yml b/docker-compose-dev.yml new file mode 100644 index 0000000..d5864f5 --- /dev/null +++ b/docker-compose-dev.yml @@ -0,0 +1,9 @@ +services: + mk-dl-bot: + build: . + env_file: + - .env + volumes: + - db:/var/lib/mk-dl-bot +volumes: + db: \ No newline at end of file diff --git a/compose.yml b/docker-compose.yml similarity index 100% rename from compose.yml rename to docker-compose.yml