diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml new file mode 100644 index 00000000..869f3401 --- /dev/null +++ b/.gitlab-ci.yml @@ -0,0 +1,11 @@ +build_image: + image: docker + stage: build + services: + - docker:dind + script: + - echo $CI_REGISTRY_USER + - echo $CI_REGISTRY + - docker login -u $CI_REGISTRY_USER -p $CI_REGISTRY_PASSWORD $CI_REGISTRY + - docker build --no-cache -t $CI_REGISTRY/jafner/calibre-web/calibre-web:$CI_COMMIT_SHA -t $CI_REGISTRY/jafner/calibre-web/calibre-web:latest . + - docker push $CI_REGISTRY/jafner/calibre-web/calibre-web --all-tags diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 00000000..715f47ad --- /dev/null +++ b/Dockerfile @@ -0,0 +1,67 @@ +FROM ghcr.io/linuxserver/baseimage-ubuntu:focal + +RUN \ + echo "**** install build packages ****" && \ + apt-get update && \ + apt-get install -y \ + git \ + libldap2-dev \ + libsasl2-dev \ + python3-pip + +RUN \ + echo "**** install runtime packages ****" && \ + apt-get install -y \ + imagemagick \ + libnss3 \ + libxcomposite1 \ + libxi6 \ + libxslt1.1 \ + libldap-2.4-2 \ + libsasl2-2 \ + libxrandr2 \ + python3-minimal \ + python3-pkg-resources \ + unrar + +RUN \ + echo "**** install kepubify ****" && \ + if [ -z ${KEPUBIFY_RELEASE+x} ]; then \ + KEPUBIFY_RELEASE=$(curl -sX GET "https://api.github.com/repos/pgaskin/kepubify/releases/latest" \ + | awk '/tag_name/{print $4;exit}' FS='[""]'); \ + fi && \ + curl -o \ + /usr/bin/kepubify -L \ + https://github.com/pgaskin/kepubify/releases/download/${KEPUBIFY_RELEASE}/kepubify-linux-64bit + +RUN \ + echo "**** install calibre-web (a worse way than LSIO's method) ****" && \ + # this is my lazy alternative to lsio's pretty one: + git clone https://gitlab.jafner.net/Jafner/calibre-web.git /app/calibre-web && \ + cd /app/calibre-web && \ + pip3 install --no-cache-dir -U \ + pip && \ + pip install --no-cache-dir -U --ignore-installed --find-links https://wheel-index.linuxserver.io/ubuntu/ -r \ + requirements.txt -r \ + optional-requirements.txt + +RUN \ + echo "**** cleanup ****" && \ + apt-get -y purge \ + git \ + libldap2-dev \ + libsasl2-dev \ + python3-pip && \ + apt-get -y autoremove && \ + rm -rf \ + /tmp/* \ + /var/lib/apt/lists/* \ + /var/tmp/* \ + /root/.cache + +# add local files +COPY root/ / + +# ports and volumes +EXPOSE 8083 +VOLUME /config