diff --git a/.github/workflows/coding-style.yml b/.github/workflows/coding-style.yml index e27da2f0..cc6bc419 100644 --- a/.github/workflows/coding-style.yml +++ b/.github/workflows/coding-style.yml @@ -41,6 +41,7 @@ jobs: - name: Lint run: yarn lint + scanner: name: "Lint scanner" runs-on: ubuntu-latest @@ -54,3 +55,18 @@ jobs: run: | pip install black-with-tabs black . --check + + transcoder: + name: "Lint transcoder" + runs-on: ubuntu-latest + defaults: + run: + working-directory: ./transcoder + steps: + - uses: actions/checkout@v1 + + - uses: dtolnay/rust-toolchain@stable + + - name: Run cargo fmt + run: | + cargo fmt --check diff --git a/.github/workflows/docker.yml b/.github/workflows/docker.yml index 3da3af3b..32cbe682 100644 --- a/.github/workflows/docker.yml +++ b/.github/workflows/docker.yml @@ -24,6 +24,9 @@ jobs: - context: ./scanner label: scanner image: zoriya/kyoo_scanner + - context: ./transcoder + label: transcoder + image: zoriya/kyoo_transcoder name: Build ${{matrix.label}} steps: - uses: actions/checkout@v2 diff --git a/back/Dockerfile b/back/Dockerfile index 1a3818d2..9c88a9b3 100644 --- a/back/Dockerfile +++ b/back/Dockerfile @@ -29,6 +29,6 @@ COPY --from=transcoder /transcoder/libtranscoder.so /app WORKDIR /kyoo EXPOSE 5000 -HEALTHCHECK CMD curl --fail http://localhost:5000/health || exit +HEALTHCHECK --interval=5s CMD curl --fail http://localhost:5000/health || exit CMD /app/Kyoo.Host diff --git a/back/Dockerfile.dev b/back/Dockerfile.dev index 373dfa5b..a0aac4ec 100644 --- a/back/Dockerfile.dev +++ b/back/Dockerfile.dev @@ -25,6 +25,6 @@ COPY --from=transcoder /transcoder/libtranscoder.so /app/out/bin/Kyoo.Host/Debug WORKDIR /kyoo EXPOSE 5000 ENV DOTNET_USE_POLLING_FILE_WATCHER 1 -HEALTHCHECK CMD curl --fail http://localhost:5000/health || exit +HEALTHCHECK --interval=5s CMD curl --fail http://localhost:5000/health || exit CMD dotnet watch run --no-restore --project /app/src/Kyoo.Host diff --git a/docker-compose.dev.yml b/docker-compose.dev.yml index 215bef95..80777bb7 100644 --- a/docker-compose.dev.yml +++ b/docker-compose.dev.yml @@ -50,6 +50,17 @@ services: volumes: - ${LIBRARY_ROOT}:/video + transcoder: + build: + context: ./transcoder + dockerfile: Dockerfile.dev + ports: + - "7666:7666" + restart: on-failure + volumes: + - ./transcoder:/app + - ${LIBRARY_ROOT}:/video + ingress: image: nginx restart: on-failure diff --git a/docker-compose.prod.yml b/docker-compose.prod.yml index 861448f9..0bd3589e 100644 --- a/docker-compose.prod.yml +++ b/docker-compose.prod.yml @@ -34,6 +34,12 @@ services: volumes: - ${LIBRARY_ROOT}:/video + transcoder: + image: zoriya/kyoo_transcoder:edge + restart: on-failure + volumes: + - ${LIBRARY_ROOT}:/video + ingress: image: nginx restart: on-failure diff --git a/docker-compose.yml b/docker-compose.yml index 3402bfca..87998ea3 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -34,6 +34,12 @@ services: volumes: - ${LIBRARY_ROOT}:/video + transcoder: + build: ./transcoder + restart: on-failure + volumes: + - ${LIBRARY_ROOT}:/video + ingress: image: nginx restart: on-failure diff --git a/front/Dockerfile.dev b/front/Dockerfile.dev index b1e58e67..6c22cbbd 100644 --- a/front/Dockerfile.dev +++ b/front/Dockerfile.dev @@ -1,4 +1,4 @@ -FROM node:16-alpine AS builder +FROM node:16-alpine RUN apk add git bash WORKDIR /app COPY .yarn ./.yarn @@ -14,4 +14,4 @@ RUN yarn --immutable ENV NEXT_TELEMETRY_DISABLED 1 EXPOSE 3000 EXPOSE 19000 -CMD ["yarn", "dev"] +CMD yarn dev diff --git a/shell.nix b/shell.nix index 59564d8b..e2433ae0 100644 --- a/shell.nix +++ b/shell.nix @@ -15,6 +15,7 @@ in python3 python3Packages.pip cargo + cargo-watch rustfmt rustc ]; diff --git a/transcoder/Dockerfile b/transcoder/Dockerfile new file mode 100644 index 00000000..231c92d0 --- /dev/null +++ b/transcoder/Dockerfile @@ -0,0 +1,20 @@ +FROM rust as builder +WORKDIR /app + +# FIX: see https://github.com/rust-lang/cargo/issues/2644 +RUN mkdir src/ && touch src/lib.rs +COPY Cargo.toml Cargo.lock ./ +RUN cargo build +RUN rm src/lib.rs + +COPY src src +RUN cargo install --path . + +FROM debian:bullseye-slim +#RUN apt-get update && apt-get install -y extra-runtime-dependencies && rm -rf /var/lib/apt/lists/* +COPY --from=builder /usr/local/cargo/bin/transcoder ./transcoder + +ENV ROCKET_ADDRESS=0.0.0.0 +ENV ROCKET_PORT=7666 +EXPOSE 7666 +CMD ./transcoder diff --git a/transcoder/Dockerfile.dev b/transcoder/Dockerfile.dev new file mode 100644 index 00000000..4f677734 --- /dev/null +++ b/transcoder/Dockerfile.dev @@ -0,0 +1,14 @@ +FROM rust +RUN cargo install cargo-watch +WORKDIR /app + +# FIX: see https://github.com/rust-lang/cargo/issues/2644 +RUN mkdir src/ && touch src/lib.rs +COPY Cargo.toml Cargo.lock ./ +RUN cargo build +RUN rm src/lib.rs + +ENV ROCKET_ADDRESS=0.0.0.0 +ENV ROCKET_PORT=7666 +EXPOSE 7666 +CMD cargo watch -x run