Add dev dockerfiles

This commit is contained in:
Zoe Roux 2022-09-28 14:57:30 +09:00
parent 5f73f86787
commit 88b1c04367
10 changed files with 75 additions and 11 deletions

View File

@ -1,5 +1,5 @@
TVDB__APIKEY= TVDB__APIKEY=
THEMOVIEDB__APIKEY= THEMOVIEDB__APIKEY=
AUTHENTICATION_SECRET= AUTHENTICATION_SECRET=
POSTGRES_USERNAME= POSTGRES_USER=
POSTGRES_PASSWORD= POSTGRES_PASSWORD=

View File

@ -9,8 +9,10 @@ README.md
src/Kyoo.WebApp/Front/nodes_modules src/Kyoo.WebApp/Front/nodes_modules
**/bin **/bin
**/obj **/obj
out
docs docs
tests tests
!tests/Kyoo.Tests/Kyoo.Tests.csproj
front front
video video
nginx.conf.template nginx.conf.template

1
back/.gitignore vendored
View File

@ -1,3 +1,4 @@
out
libtranscoder.so libtranscoder.so
libtranscoder.dylib libtranscoder.dylib
transcoder.dll transcoder.dll

36
back/Dockerfile.dev Normal file
View File

@ -0,0 +1,36 @@
FROM gcc:latest as transcoder
RUN apt-get update && apt-get install -y cmake make libavutil-dev libavcodec-dev libavformat-dev
WORKDIR /transcoder
COPY src/Kyoo.Transcoder .
RUN cmake . && make -j
FROM mcr.microsoft.com/dotnet/sdk:6.0
RUN apt-get update && apt-get install -y libavutil-dev libavcodec-dev libavformat-dev
WORKDIR /app
COPY Kyoo.sln ./Kyoo.sln
COPY nuget.config ./nuget.config
COPY src/Directory.Build.props src/Directory.Build.props
COPY src/Kyoo.Authentication/Kyoo.Authentication.csproj src/Kyoo.Authentication/Kyoo.Authentication.csproj
COPY src/Kyoo.Database/Kyoo.Database.csproj src/Kyoo.Database/Kyoo.Database.csproj
COPY src/Kyoo.Host.Generic/Kyoo.Host.Generic.csproj src/Kyoo.Host.Generic/Kyoo.Host.Generic.csproj
COPY src/Kyoo.SqLite/Kyoo.SqLite.csproj src/Kyoo.SqLite/Kyoo.SqLite.csproj
COPY src/Kyoo.TheMovieDb/Kyoo.TheMovieDb.csproj src/Kyoo.TheMovieDb/Kyoo.TheMovieDb.csproj
COPY src/Kyoo.Abstractions/Kyoo.Abstractions.csproj src/Kyoo.Abstractions/Kyoo.Abstractions.csproj
COPY src/Kyoo.Core/Kyoo.Core.csproj src/Kyoo.Core/Kyoo.Core.csproj
COPY src/Kyoo.Host.Console/Kyoo.Host.Console.csproj src/Kyoo.Host.Console/Kyoo.Host.Console.csproj
COPY src/Kyoo.Postgresql/Kyoo.Postgresql.csproj src/Kyoo.Postgresql/Kyoo.Postgresql.csproj
COPY src/Kyoo.Swagger/Kyoo.Swagger.csproj src/Kyoo.Swagger/Kyoo.Swagger.csproj
COPY src/Kyoo.TheTvdb/Kyoo.TheTvdb.csproj src/Kyoo.TheTvdb/Kyoo.TheTvdb.csproj
COPY tests/Kyoo.Tests/Kyoo.Tests.csproj tests/Kyoo.Tests/Kyoo.Tests.csproj
RUN dotnet restore
COPY --from=transcoder /transcoder/libtranscoder.so /usr/lib/
EXPOSE 5000
ENV DOTNET_USE_POLLING_FILE_WATCHER 1
ENV LD_DEBUG libs
CMD ["dotnet", "watch", "run", "--no-restore", "--project", "src/Kyoo.Host.Console"]

View File

@ -81,10 +81,6 @@ Global
{4FF1ECD9-6EEF-4440-B037-A661D78FB04D}.Debug|Any CPU.Build.0 = Debug|Any CPU {4FF1ECD9-6EEF-4440-B037-A661D78FB04D}.Debug|Any CPU.Build.0 = Debug|Any CPU
{4FF1ECD9-6EEF-4440-B037-A661D78FB04D}.Release|Any CPU.ActiveCfg = Release|Any CPU {4FF1ECD9-6EEF-4440-B037-A661D78FB04D}.Release|Any CPU.ActiveCfg = Release|Any CPU
{4FF1ECD9-6EEF-4440-B037-A661D78FB04D}.Release|Any CPU.Build.0 = Release|Any CPU {4FF1ECD9-6EEF-4440-B037-A661D78FB04D}.Release|Any CPU.Build.0 = Release|Any CPU
{98851001-40DD-46A6-94B3-2F8D90722076}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{98851001-40DD-46A6-94B3-2F8D90722076}.Debug|Any CPU.Build.0 = Debug|Any CPU
{98851001-40DD-46A6-94B3-2F8D90722076}.Release|Any CPU.ActiveCfg = Release|Any CPU
{98851001-40DD-46A6-94B3-2F8D90722076}.Release|Any CPU.Build.0 = Release|Any CPU
{D8658BEA-8949-45AC-BEBB-A4FFC4F800F5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {D8658BEA-8949-45AC-BEBB-A4FFC4F800F5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{D8658BEA-8949-45AC-BEBB-A4FFC4F800F5}.Debug|Any CPU.Build.0 = Debug|Any CPU {D8658BEA-8949-45AC-BEBB-A4FFC4F800F5}.Debug|Any CPU.Build.0 = Debug|Any CPU
{D8658BEA-8949-45AC-BEBB-A4FFC4F800F5}.Release|Any CPU.ActiveCfg = Release|Any CPU {D8658BEA-8949-45AC-BEBB-A4FFC4F800F5}.Release|Any CPU.ActiveCfg = Release|Any CPU
@ -106,7 +102,6 @@ Global
{3213C96D-0BF3-460B-A8B5-B9977229408A} = {865461CA-EC06-4B42-91CF-8723B0A9BB67} {3213C96D-0BF3-460B-A8B5-B9977229408A} = {865461CA-EC06-4B42-91CF-8723B0A9BB67}
{6515380E-1E57-42DA-B6E3-E1C8A848818A} = {865461CA-EC06-4B42-91CF-8723B0A9BB67} {6515380E-1E57-42DA-B6E3-E1C8A848818A} = {865461CA-EC06-4B42-91CF-8723B0A9BB67}
{D8658BEA-8949-45AC-BEBB-A4FFC4F800F5} = {C569FF25-7E01-484C-9F72-5B99845AD94B} {D8658BEA-8949-45AC-BEBB-A4FFC4F800F5} = {C569FF25-7E01-484C-9F72-5B99845AD94B}
{98851001-40DD-46A6-94B3-2F8D90722076} = {C569FF25-7E01-484C-9F72-5B99845AD94B}
{0938459E-2E2B-457F-8120-7D8CA93866A6} = {C569FF25-7E01-484C-9F72-5B99845AD94B} {0938459E-2E2B-457F-8120-7D8CA93866A6} = {C569FF25-7E01-484C-9F72-5B99845AD94B}
EndGlobalSection EndGlobalSection
EndGlobal EndGlobal

View File

@ -23,11 +23,19 @@
<GenerateDocumentationFile>true</GenerateDocumentationFile> <GenerateDocumentationFile>true</GenerateDocumentationFile>
</PropertyGroup> </PropertyGroup>
<PropertyGroup>
<BaseIntermediateOutputPath>$(MsBuildThisFileDirectory)/../out/obj/$(MSBuildProjectName)</BaseIntermediateOutputPath>
<BaseOutputPath>$(MsBuildThisFileDirectory)/../out/bin/$(MSBuildProjectName)</BaseOutputPath>
</PropertyGroup>
<PropertyGroup> <PropertyGroup>
<IsWindows Condition="$([MSBuild]::IsOSPlatform('Windows'))">true</IsWindows> <IsWindows Condition="$([MSBuild]::IsOSPlatform('Windows'))">true</IsWindows>
<IsOSX Condition="$([MSBuild]::IsOSPlatform('OSX'))">true</IsOSX> <IsOSX Condition="$([MSBuild]::IsOSPlatform('OSX'))">true</IsOSX>
<IsLinux Condition="$([MSBuild]::IsOSPlatform('Linux'))">true</IsLinux> <IsLinux Condition="$([MSBuild]::IsOSPlatform('Linux'))">true</IsLinux>
<!-- This is horrible but the only workarround I found to disable the transcoder copy on the dev dockerfile -->
<SkipTranscoder Condition="$(MsBuildThisFileDirectory) == '/app/src/'">true</SkipTranscoder>
<CheckCodingStyle Condition="$(CheckCodingStyle) == ''">true</CheckCodingStyle> <CheckCodingStyle Condition="$(CheckCodingStyle) == ''">true</CheckCodingStyle>
</PropertyGroup> </PropertyGroup>

View File

@ -5,24 +5,33 @@ services:
build: build:
context: ./back context: ./back
dockerfile: Dockerfile.dev dockerfile: Dockerfile.dev
ports:
- "5000:5000"
restart: on-failure restart: on-failure
environment: environment:
- KYOO_DATADIR=/var/lib/kyoo - KYOO_DATADIR=/var/lib/kyoo
- DATABASE__ENABLED=postgres - DATABASE__ENABLED=postgres
- DATABASE__CONFIGURATIONS__POSTGRES__SERVER=postgres - DATABASE__CONFIGURATIONS__POSTGRES__SERVER=postgres
- DATABASE__CONFIGURATIONS__POSTGRES__USER=kyoo - DATABASE__CONFIGURATIONS__POSTGRES__USER=${POSTGRES_USER}
- DATABASE__CONFIGURATIONS__POSTGRES__PASSWORD=kyooPassword - DATABASE__CONFIGURATIONS__POSTGRES__PASSWORD=${POSTGRES_PASSWORD}
- TVDB__APIKEY=${TVDB__APIKEY} - TVDB__APIKEY=${TVDB__APIKEY}
- THEMOVIEDB__APIKEY=${THEMOVIEDB__APIKEY} - THEMOVIEDB__APIKEY=${THEMOVIEDB__APIKEY}
depends_on: depends_on:
- postgres - postgres
volumes: volumes:
- ./back:/app
- /app/out
- kyoo:/var/lib/kyoo - kyoo:/var/lib/kyoo
- ./video:/video - ./video:/video
front: front:
build: build:
context: ./front context: ./front
dockerfile: Dockerfile.dev dockerfile: Dockerfile.dev
volumes:
- ./front:/app
- /app/nodes_modules
ports:
- "3000:3000"
restart: on-failure restart: on-failure
environment: environment:
- KYOO_URL=http://kyoo:5000 - KYOO_URL=http://kyoo:5000
@ -31,7 +40,7 @@ services:
restart: on-failure restart: on-failure
environment: environment:
- PORT=8901 - PORT=8901
- FRONT_URL=http://front:8901 - FRONT_URL=http://front:3000
- BACK_URL=http://kyoo:5000 - BACK_URL=http://kyoo:5000
volumes: volumes:
- ./nginx.conf.template:/etc/nginx/templates/kyoo.conf.template:ro - ./nginx.conf.template:/etc/nginx/templates/kyoo.conf.template:ro
@ -44,8 +53,8 @@ services:
image: "postgres" image: "postgres"
restart: on-failure restart: on-failure
environment: environment:
- POSTGRES_USER=kyoo - POSTGRES_USER=${POSTGRES_USER}
- POSTGRES_PASSWORD=kyooPassword - POSTGRES_PASSWORD=${POSTGRES_PASSWORD}
volumes: volumes:
- db:/var/lib/postgresql/data - db:/var/lib/postgresql/data

View File

@ -1,5 +1,8 @@
Dockerfile Dockerfile
Dockerfile.dev
.dockerignore .dockerignore
.eslintrc.json
.gitignore
node_modules node_modules
npm-debug.log npm-debug.log
README.md README.md

10
front/Dockerfile.dev Normal file
View File

@ -0,0 +1,10 @@
FROM node:16-alpine AS builder
WORKDIR /app
COPY package.json yarn.lock ./
RUN yarn --frozen-lockfile
ENV NEXT_TELEMETRY_DISABLED 1
EXPOSE 3000
ENV PORT 3000
CMD ["yarn", "dev"]