forked from Kareadita/Kavita
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Added Dockerfiles to main repo (Kareadita#225)
* Added Dockerfiles
- Loading branch information
Showing
7 changed files
with
210 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,3 @@ | ||
# Set line formatting for scripts | ||
|
||
*.sh text eol=lf |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,44 @@ | ||
#This Dockerfile pulls the latest git commit and builds Kavita from source | ||
FROM mcr.microsoft.com/dotnet/sdk:5.0-focal AS builder | ||
|
||
MAINTAINER Chris P | ||
|
||
ENV DEBIAN_FRONTEND=noninteractive | ||
ARG TARGETPLATFORM | ||
|
||
#Installs nodejs and npm | ||
RUN curl -fsSL https://deb.nodesource.com/setup_14.x | bash - \ | ||
&& apt-get install -y nodejs \ | ||
&& rm -rf /var/lib/apt/lists/* | ||
|
||
#Builds app based on platform | ||
COPY build_target.sh /build_target.sh | ||
RUN /build_target.sh | ||
|
||
#Production image | ||
FROM ubuntu:focal | ||
|
||
MAINTAINER Chris P | ||
|
||
#Move the output files to where they need to be | ||
COPY --from=builder /Projects/Kavita/_output/build/Kavita /kavita | ||
|
||
#Installs program dependencies | ||
RUN apt-get update \ | ||
&& apt-get install -y libicu-dev libssl1.1 pwgen \ | ||
&& rm -rf /var/lib/apt/lists/* | ||
|
||
#Creates the manga storage directory | ||
RUN mkdir /manga /kavita/data | ||
|
||
RUN cp /kavita/appsettings.Development.json /kavita/appsettings.json \ | ||
&& sed -i 's/Data source=kavita.db/Data source=data\/kavita.db/g' /kavita/appsettings.json | ||
|
||
COPY entrypoint.sh /entrypoint.sh | ||
|
||
EXPOSE 5000 | ||
|
||
WORKDIR /kavita | ||
|
||
ENTRYPOINT ["/bin/bash"] | ||
CMD ["/entrypoint.sh"] |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,28 @@ | ||
#This Dockerfile is for the musl alpine build of Kavita. | ||
FROM alpine:latest | ||
|
||
MAINTAINER Chris P | ||
|
||
#Installs the needed dependencies | ||
RUN apk update && apk add --no-cache wget curl pwgen icu-dev bash | ||
|
||
#Downloads Kavita, unzips and moves the folders to where they need to be | ||
RUN wget https://github.com/Kareadita/Kavita/releases/download/v0.3.7/kavita-linux-musl-x64.tar.gz \ | ||
&& tar -xzf kavita*.tar.gz \ | ||
&& mv Kavita/ /kavita/ \ | ||
&& rm kavita*.gz \ | ||
&& chmod +x /kavita/Kavita | ||
|
||
#Creates the needed folders | ||
RUN mkdir /manga /kavita/data /kavita/temp /kavita/cache | ||
|
||
RUN sed -i 's/Data source=kavita.db/Data source=data\/kavita.db/g' /kavita/appsettings.json | ||
|
||
COPY entrypoint.sh /entrypoint.sh | ||
|
||
EXPOSE 5000 | ||
|
||
WORKDIR /kavita | ||
|
||
ENTRYPOINT ["/bin/bash"] | ||
CMD ["/entrypoint.sh"] |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,27 @@ | ||
#This Dockerfile pulls the latest git commit and builds Kavita from source | ||
|
||
#Production image | ||
FROM ubuntu:focal | ||
|
||
#Move the output files to where they need to be | ||
COPY Kavita /kavita | ||
|
||
#Installs program dependencies | ||
RUN apt-get update \ | ||
&& apt-get install -y libicu-dev libssl1.1 pwgen \ | ||
&& rm -rf /var/lib/apt/lists/* | ||
|
||
#Creates the manga storage directory | ||
RUN mkdir /kavita/data | ||
|
||
RUN cp /kavita/appsettings.Development.json /kavita/appsettings.json \ | ||
&& sed -i 's/Data source=kavita.db/Data source=data\/kavita.db/g' /kavita/appsettings.json | ||
|
||
COPY entrypoint.sh /entrypoint.sh | ||
|
||
EXPOSE 5000 | ||
|
||
WORKDIR /kavita | ||
|
||
ENTRYPOINT ["/bin/bash"] | ||
CMD ["/entrypoint.sh"] |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,27 @@ | ||
#!/bin/bash | ||
|
||
mkdir Projects | ||
|
||
cd Projects | ||
|
||
git clone https://github.com/Kareadita/Kavita.git | ||
git clone https://github.com/Kareadita/Kavita-webui.git | ||
|
||
cd Kavita | ||
chmod +x build.sh | ||
|
||
#Builds program based on the target platform | ||
|
||
if [ "$TARGETPLATFORM" == "linux/amd64" ] | ||
then | ||
./build.sh linux-x64 | ||
mv /Projects/Kavita/_output/linux-x64 /Projects/Kavita/_output/build | ||
elif [ "$TARGETPLATFORM" == "linux/arm/v7" ] | ||
then | ||
./build.sh linux-arm | ||
mv /Projects/Kavita/_output/linux-arm /Projects/Kavita/_output/build | ||
elif [ "$TARGETPLATFORM" == "linux/arm64" ] | ||
then | ||
./build.sh linux-arm64 | ||
mv /Projects/Kavita/_output/linux-arm64 /Projects/Kavita/_output/build | ||
fi |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,13 @@ | ||
version: '3.9' | ||
services: | ||
kavita: | ||
image: kizaing/kavita:latest | ||
volumes: | ||
- ./manga:/manga | ||
- ./data/temp:/kavita/temp | ||
- ./data/cache:/kavita/cache | ||
- ./data:/kavita/data | ||
- ./data/logs:/kavita/logs | ||
ports: | ||
- "5000:5000" | ||
restart: unless-stopped |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,68 @@ | ||
#!/bin/bash | ||
|
||
#Checks if a token has been set, and then generates a new token if not | ||
if grep -q 'super secret unguessable key' /kavita/appsettings.json | ||
then | ||
export TOKEN_KEY="$(pwgen -s 16 1)" | ||
sed -i "s/super secret unguessable key/${TOKEN_KEY}/g" /kavita/appsettings.json | ||
fi | ||
|
||
#Checks if the appsettings.json already exists in bind mount | ||
if test -f "/kavita/data/appsettings.json" | ||
then | ||
rm /kavita/appsettings.json | ||
ln -s /kavita/data/appsettings.json /kavita/ | ||
else | ||
mv /kavita/appsettings.json /kavita/data/ | ||
ln -s /kavita/data/appsettings.json /kavita/ | ||
fi | ||
|
||
#Checks if the data folders exist | ||
if [ -d /kavita/data/temp ] | ||
then | ||
if [ -d /kavita/temp ] | ||
then | ||
unlink /kavita/temp | ||
ln -s /kavita/data/temp /kavita/temp | ||
else | ||
ln -s /kavita/data/temp /kavita/temp | ||
fi | ||
else | ||
mkdir /kavita/data/temp | ||
ln -s /kavita/data/temp /kavita/temp | ||
fi | ||
|
||
if [ -d /kavita/data/cache ] | ||
then | ||
if [ -d /kavita/cache ] | ||
then | ||
unlink /kavita/cache | ||
ln -s /kavita/data/cache /kavita/cache | ||
else | ||
ln -s /kavita/data/cache /kavita/cache | ||
fi | ||
else | ||
mkdir /kavita/data/cache | ||
ln -s /kavita/data/cache /kavita/cache | ||
fi | ||
|
||
# Checks for the log file | ||
|
||
if test -f "/kavita/data/logs/kavita.log" | ||
then | ||
rm /kavita/kavita.log | ||
ln -s /kavita/data/logs/kavita.log /kavita/ | ||
else | ||
if [ -d /kavita/data/logs ] | ||
then | ||
touch /kavita/data/logs/kavita.log | ||
ln -s /kavita/data/logs/kavita.log /kavita/ | ||
else | ||
mkdir /kavita/data/logs | ||
touch /kavita/data/logs/kavita.log | ||
ln -s /kavita/data/logs/kavita.log /kavita/ | ||
fi | ||
|
||
fi | ||
|
||
./Kavita |