mirror of
https://git.nadeko.net/Fijxu/invidious.git
synced 2026-02-04 04:57:02 +00:00
Some checks failed
Stale issue handler / stale (push) Has been cancelled
Build and release container directly from master / release (docker/Dockerfile, AMD64, ubuntu-latest, linux/amd64, ) (push) Has been cancelled
Build and release container directly from master / release (docker/Dockerfile.arm64, ARM64, ubuntu-24.04-arm, linux/arm64/v8, -arm64) (push) Has been cancelled
Invidious CI / build - crystal: 1.14.1, stable: true (push) Has been cancelled
Invidious CI / build - crystal: 1.15.1, stable: true (push) Has been cancelled
Invidious CI / build - crystal: 1.16.3, stable: true (push) Has been cancelled
Invidious CI / build - crystal: 1.17.1, stable: true (push) Has been cancelled
Invidious CI / build - crystal: 1.18.2, stable: true (push) Has been cancelled
Invidious CI / build - crystal: nightly, stable: false (push) Has been cancelled
Invidious CI / Test AMD64 Docker build (push) Has been cancelled
Invidious CI / Test ARM64 Docker build (push) Has been cancelled
Invidious CI / lint (push) Has been cancelled
58 lines
1.7 KiB
Docker
58 lines
1.7 KiB
Docker
FROM git.nadeko.net/fijxu/84codes-crystal-openssl:1.16.3 AS dependabot-crystal
|
||
|
||
FROM dependabot-crystal AS builder
|
||
|
||
RUN apk add --no-cache sqlite-static yaml-static
|
||
|
||
ARG release
|
||
|
||
WORKDIR /invidious
|
||
|
||
COPY ./shard.yml ./shard.yml
|
||
COPY ./shard.lock ./shard.lock
|
||
|
||
RUN shards install --production
|
||
|
||
COPY ./src/ ./src/
|
||
# TODO: .git folder is required for building – this is destructive.
|
||
# See definition of CURRENT_BRANCH, CURRENT_COMMIT and CURRENT_VERSION.
|
||
COPY ./.git/ ./.git/
|
||
|
||
# Required for fetching player dependencies
|
||
COPY ./scripts/ ./scripts/
|
||
COPY ./assets/ ./assets/
|
||
COPY ./videojs-dependencies.yml ./videojs-dependencies.yml
|
||
|
||
RUN crystal spec --warnings all \
|
||
--link-flags "-lxml2 -llzma"
|
||
|
||
RUN --mount=type=cache,target=/root/.cache/crystal if [[ "${release}" == 1 ]] ; then \
|
||
crystal build ./src/invidious.cr \
|
||
--release -s -p -t --mcpu=x86-64-v2 \
|
||
--static --warnings all \
|
||
--link-flags "-lxml2 -llzma"; \
|
||
else \
|
||
crystal build ./src/invidious.cr \
|
||
--static --warnings all \
|
||
--link-flags "-lxml2 -llzma"; \
|
||
fi
|
||
|
||
FROM mirror.gcr.io/alpine:3.23
|
||
RUN apk add --no-cache rsvg-convert ttf-opensans tini tzdata
|
||
WORKDIR /invidious
|
||
RUN addgroup -g 1000 -S invidious && \
|
||
adduser -u 1000 -S invidious -G invidious
|
||
COPY --chown=invidious ./config/config.* ./config/
|
||
RUN mv -n config/config.example.yml config/config.yml
|
||
RUN sed -i 's/host: \(127.0.0.1\|localhost\)/host: invidious-db/' config/config.yml
|
||
COPY ./config/sql/ ./config/sql/
|
||
COPY ./locales/ ./locales/
|
||
COPY --from=builder /invidious/assets ./assets/
|
||
COPY --from=builder /invidious/invidious .
|
||
RUN chmod o+rX -R ./assets ./config ./locales
|
||
|
||
EXPOSE 3000
|
||
USER invidious
|
||
ENTRYPOINT ["/sbin/tini", "--"]
|
||
CMD [ "/invidious/invidious" ]
|