Add files to deploy on docker-compose.

This commit is contained in:
Kavin 2022-10-22 21:43:13 +01:00
parent a4a0b79817
commit c06ae8280f
No known key found for this signature in database
GPG Key ID: 49451E4482CC5BCD
7 changed files with 96 additions and 51 deletions

7
.dockerignore Normal file
View File

@ -0,0 +1,7 @@
.*
Dockerfile
docker-compose.yml
*.md
target/
mirror/
export/

37
.github/workflows/build-docker.yml vendored Normal file
View File

@ -0,0 +1,37 @@
name: Docker Multi-Architecture Build
on:
push:
paths-ignore:
- "**.md"
branches:
- main
jobs:
build-docker-image:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Set up QEMU
uses: docker/setup-qemu-action@v2
with:
platforms: all
- name: Set up Docker BuildX
uses: docker/setup-buildx-action@v2
with:
version: latest
- name: Login to DockerHub
uses: docker/login-action@v2
with:
username: ${{ secrets.DOCKER_USERNAME }}
password: ${{ secrets.DOCKER_PASSWORD }}
- name: Build and push
uses: docker/build-push-action@v3
with:
context: .
file: ./Dockerfile
platforms: linux/amd64,linux/arm64
push: true
tags: 1337kavin/sponsorblock-mirror:latest
cache-from: type=gha
cache-to: type=gha,mode=max

53
Cargo.lock generated
View File

@ -143,18 +143,6 @@ dependencies = [
"alloc-stdlib",
]
[[package]]
name = "bstr"
version = "0.2.17"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ba3569f383e8f1598449f1a423e72e99569137b47740b1da11ef19af3d5c3223"
dependencies = [
"lazy_static",
"memchr",
"regex-automata",
"serde",
]
[[package]]
name = "bumpalo"
version = "3.11.0"
@ -221,28 +209,6 @@ dependencies = [
"cfg-if",
]
[[package]]
name = "csv"
version = "1.1.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "22813a6dc45b335f9bade10bf7271dc477e81113e89eb251a0bc2a8a81c536e1"
dependencies = [
"bstr",
"csv-core",
"itoa 0.4.8",
"ryu",
"serde",
]
[[package]]
name = "csv-core"
version = "0.1.10"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "2b2466559f260f48ad25fe6317b3c8dac77b5bdb5763ac7d9d6103530663bc90"
dependencies = [
"memchr",
]
[[package]]
name = "devise"
version = "0.3.1"
@ -285,7 +251,7 @@ dependencies = [
"bitflags",
"byteorder",
"diesel_derives",
"itoa 1.0.4",
"itoa",
"pq-sys",
"r2d2",
]
@ -538,7 +504,7 @@ checksum = "75f43d41e26995c17e71ee126451dd3941010b0514a81a9d11f3b341debc2399"
dependencies = [
"bytes",
"fnv",
"itoa 1.0.4",
"itoa",
]
[[package]]
@ -579,7 +545,7 @@ dependencies = [
"http-body",
"httparse",
"httpdate",
"itoa 1.0.4",
"itoa",
"pin-project-lite",
"socket2",
"tokio",
@ -656,12 +622,6 @@ version = "2.5.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "879d54834c8c76457ef4293a689b2a8c59b076067ad77b15efafbb05f92a592b"
[[package]]
name = "itoa"
version = "0.4.8"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b71991ff56294aa922b450139ee08b3bfc70982c6b2c7562771375cf73542dd4"
[[package]]
name = "itoa"
version = "1.0.4"
@ -1438,7 +1398,7 @@ version = "1.0.86"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "41feea4228a6f1cd09ec7a3593a682276702cd67b5273544757dae23c096f074"
dependencies = [
"itoa 1.0.4",
"itoa",
"ryu",
"serde",
]
@ -1450,7 +1410,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d3491c14715ca2294c4d6a88f15e84739788c1d030eed8c110436aafdaa2f3fd"
dependencies = [
"form_urlencoded",
"itoa 1.0.4",
"itoa",
"ryu",
"serde",
]
@ -1514,7 +1474,6 @@ checksum = "7f6002a767bff9e83f8eeecf883ecb8011875a21ae8da43bffb817a57e78cc09"
name = "sponsorblock-mirror"
version = "0.1.0"
dependencies = [
"csv",
"diesel",
"diesel_logger",
"diesel_migrations",
@ -1587,7 +1546,7 @@ version = "0.3.15"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d634a985c4d4238ec39cacaed2e7ae552fbd3c476b552c1deac3021b7d7eaf0c"
dependencies = [
"itoa 1.0.4",
"itoa",
"libc",
"num_threads",
"time-macros",

View File

@ -6,7 +6,6 @@ version = "0.1.0"
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
[dependencies]
csv = "1.1.6"
diesel = {version = "2.0.2", features = ["postgres"]}
diesel_logger = "0.2.0"
diesel_migrations = "2.0.0"

33
Dockerfile Normal file
View File

@ -0,0 +1,33 @@
FROM rust:slim as BUILD
RUN --mount=type=cache,target=/var/cache/apt \
apt-get update && \
apt-get install -y --no-install-recommends \
build-essential pkg-config libssl-dev libpq-dev && \
rm -rf /var/lib/apt/lists/*
WORKDIR /app/
COPY . .
RUN --mount=type=cache,target=/usr/local/cargo/registry \
--mount=type=cache,target=/app/target/ \
cargo build --release && \
mv target/release/sponsorblock-mirror .
FROM debian:stable-slim
RUN --mount=type=cache,target=/var/cache/apt \
apt-get update && \
apt-get install -y --no-install-recommends \
libssl1.1 libpq5 && \
rm -rf /var/lib/apt/lists/*
WORKDIR /app/
COPY --from=BUILD /app/sponsorblock-mirror .
COPY --from=BUILD /app/Rocket.toml .
EXPOSE 8000
CMD ["/app/sponsorblock-mirror"]

View File

@ -5,4 +5,4 @@ address = "0.0.0.0"
sponsorblock = { url = "postgresql://sponsorblock:password123@localhost" }
[release.databases]
sponsorblock = { url = "postgresql://sponsorblock:password123@sponsorblock" }
sponsorblock = { url = "postgresql://sponsorblock:password123@postgres" }

View File

@ -10,11 +10,12 @@ services:
environment:
- MIRROR=TRUE
- MIRROR_URL=mirror.sb.mchang.xyz
restart: unless-stopped
postgres:
image: postgres:15-alpine
container_name: postgres-sb-mirror
ports:
- 5432:5432
# ports:
# - 5432:5432
volumes:
- postgres_data:/var/lib/postgresql/data
- ./mirror:/mirror
@ -22,5 +23,14 @@ services:
- POSTGRES_DB=sponsorblock
- POSTGRES_PASSWORD=password123
- POSTGRES_USER=sponsorblock
restart: unless-stopped
sponsorblock-mirror:
image: 1337kavin/sponsorblock-mirror:latest
container_name: sponsorblock-mirror
volumes:
- ./mirror:/app/mirror
ports:
- 8000:8000
restart: unless-stopped
volumes:
postgres_data: null