Skip to content

Commit 0dbc826

Browse files
committed
Dockerfile for easy build the project for linux
1 parent 0674b9f commit 0dbc826

File tree

5 files changed

+63
-0
lines changed

5 files changed

+63
-0
lines changed

Dockerfile

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
FROM rust:latest as builder
2+
3+
RUN apt-get update && \
4+
apt-get install -y cmake musl-tools libssl-dev wget gcc pkg-config musl-dev && \
5+
rustup target add x86_64-unknown-linux-musl && \
6+
wget https://www.openssl.org/source/openssl-1.1.1w.tar.gz && \
7+
tar xzf openssl-1.1.1w.tar.gz && \
8+
cd openssl-1.1.1w && \
9+
./Configure no-shared no-zlib no-async -fPIC --prefix=/usr/local/musl linux-x86_64 && \
10+
make depend && \
11+
make -j$(nproc) && \
12+
make install
13+
14+
WORKDIR /app
15+
COPY /src /app/src
16+
COPY Cargo.toml /app/Cargo.toml
17+
18+
RUN OPENSSL_DIR=/usr/local/musl cargo build --target x86_64-unknown-linux-musl --release

build.bat

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
@echo off
2+
IF "%1"=="" (
3+
SET IMAGE_NAME=builder
4+
) ELSE (
5+
SET IMAGE_NAME=%1
6+
)
7+
IF NOT EXIST build (
8+
mkdir build
9+
)
10+
docker stop temp 2>nul
11+
docker rm temp 2>nul
12+
docker rmi %IMAGE_NAME% 2>nul
13+
docker build -t %IMAGE_NAME% .
14+
IF %ERRORLEVEL% NEQ 0 exit /b 1
15+
docker create --name temp %IMAGE_NAME%
16+
IF %ERRORLEVEL% NEQ 0 exit /b 1
17+
docker cp temp:/app/target/x86_64-unknown-linux-musl/release/ttdownloader .\build\ttdownloader
18+
IF %ERRORLEVEL% NEQ 0 exit /b 1
19+
docker rm temp
20+
IF %ERRORLEVEL% NEQ 0 exit /b 1

build.sh

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
#!/usr/bin/env bash
2+
IMAGE_NAME=${1:-builder}
3+
mkdir -p build
4+
docker stop temp 2>/dev/null >&2 || true
5+
docker rm temp 2>/dev/null >&2 || true
6+
docker rmi "$IMAGE_NAME" 2>/dev/null >&2 || true
7+
docker build -t "$IMAGE_NAME" .
8+
if [ $? -ne 0 ]; then exit 1; fi
9+
docker create --name temp "$IMAGE_NAME"
10+
if [ $? -ne 0 ]; then exit 1; fi
11+
docker cp temp:/app/target/x86_64-unknown-linux-musl/release/ttdownloader "$(cygpath -w ./build/ttdownloader)"
12+
if [ $? -ne 0 ]; then exit 1; fi
13+
docker rm temp
14+
if [ $? -ne 0 ]; then exit 1; fi

build/Dockerfile

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
FROM alpine:latest
2+
LABEL authors="destr"
3+
4+
WORKDIR /app
5+
COPY .env /app/.env
6+
COPY ttdownloader /app/ttdownloader
7+
8+
ENTRYPOINT ["./ttdownloader"]

build/get-image.bat

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
@echo off
2+
docker build -t ttdownloader .
3+
docker save ttdownloader -o ttdownloader.tar

0 commit comments

Comments
 (0)