add docker + workflow

This commit is contained in:
JMARyA 2024-03-07 16:25:32 +01:00
parent 64215f5b70
commit bb8a125ff1
Signed by: jmarya
GPG key ID: 901B2ADDF27C2263
4 changed files with 56 additions and 0 deletions

View file

@ -0,0 +1,25 @@
name: build
on:
push:
branches:
- master
jobs:
deploy:
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v2
- name: Install Docker
run: curl -fsSL https://get.docker.com | sh
- name: Log in to Docker registry
run: echo "${{ secrets.registry_password }}" | docker login -u "${{ secrets.registry_user }}" --password-stdin git.hydrar.de
- name: Build and push Docker image
run: |
docker build -t git.hydrar.de/jmarya/hoard:latest .
docker push git.hydrar.de/jmarya/hoard:latest

19
Dockerfile Normal file
View file

@ -0,0 +1,19 @@
FROM rust:buster as builder
COPY . /app
WORKDIR /app
RUN cargo build --release
FROM archlinux
# Install dependencies for yt-dlp and ffmpeg
RUN pacman -Syu --noconfirm && \
pacman -S --noconfirm ca-certificates ffmpeg yt-dlp && \
rm -rf /var/cache/pacman/pkg/*
COPY --from=builder /app/target/release/hoard /hoard
WORKDIR /
CMD ["/hoard"]

11
docker-compose.yml Normal file
View file

@ -0,0 +1,11 @@
version: '3'
services:
app:
build: "."
environment:
TZ: Europe/Berlin
volumes:
- ./download:/download
- ./download.db:/download.db
- ./config.toml:/config.toml

View file

@ -7,6 +7,7 @@ mod youtube;
use config::GlobalConfig;
// todo : migrate to async code?
// todo : better log options
pub fn ensure_dir_exists(dir_path: &PathBuf) {
let path = std::path::Path::new(dir_path);