Merge pull request #4 from linuxserver/alpine.python3.6
Alpine.python3.6
This commit is contained in:
commit
391552992b
24
Dockerfile
24
Dockerfile
@ -1,5 +1,5 @@
|
||||
FROM lsiobase/alpine.nginx:3.5
|
||||
MAINTAINER sparklyballs
|
||||
FROM lsiobase/alpine.python:3.6
|
||||
MAINTAINER sparklyballs,chbmb
|
||||
|
||||
# set version label
|
||||
ARG BUILD_DATE
|
||||
@ -9,19 +9,14 @@ LABEL build_version="Linuxserver.io version:- ${VERSION} Build-date:- ${BUILD_DA
|
||||
# install build packages
|
||||
RUN \
|
||||
apk add --no-cache --virtual=build-dependencies \
|
||||
curl \
|
||||
g++ \
|
||||
gcc \
|
||||
git \
|
||||
make \
|
||||
python2-dev \
|
||||
tar && \
|
||||
python2-dev && \
|
||||
|
||||
# install runtime packages
|
||||
apk add --no-cache \
|
||||
py2-lxml \
|
||||
py2-pip \
|
||||
python2 && \
|
||||
imagemagick && \
|
||||
|
||||
# install calibre-web
|
||||
mkdir -p \
|
||||
@ -35,23 +30,18 @@ RUN \
|
||||
cd /app/calibre-web && \
|
||||
pip install --no-cache-dir -U -r \
|
||||
requirements.txt && \
|
||||
|
||||
# install pip packages
|
||||
pip install --no-cache-dir -U \
|
||||
gunicorn \
|
||||
Wand && \
|
||||
pip install --no-cache-dir -U -r \
|
||||
optional-requirements.txt && \
|
||||
|
||||
# cleanup
|
||||
apk del --purge \
|
||||
build-dependencies && \
|
||||
rm -rf \
|
||||
/etc/services.d/php-fpm \
|
||||
/etc/logrotate.d/php-fpm7 \
|
||||
/tmp/*
|
||||
|
||||
# add local files
|
||||
COPY root/ /
|
||||
|
||||
# ports and volumes
|
||||
EXPOSE 80
|
||||
EXPOSE 8083
|
||||
VOLUME /books /config
|
||||
|
94
README.md
94
README.md
@ -2,14 +2,100 @@
|
||||
[forumurl]: https://forum.linuxserver.io
|
||||
[ircurl]: https://www.linuxserver.io/irc/
|
||||
[podcasturl]: https://www.linuxserver.io/podcast/
|
||||
[appurl]: https://github.com/janeczku/calibre-web
|
||||
[hub]: https://hub.docker.com/r/example/example/
|
||||
|
||||
[![linuxserver.io](https://raw.githubusercontent.com/linuxserver/docker-templates/master/linuxserver.io/img/linuxserver_medium.png)][linuxserverurl]
|
||||
|
||||
## This is a Container in active development by the [LinuxServer.io][linuxserverurl] team and is not recommended for use by the general public.
|
||||
|
||||
If you want to comment\contribute on this container , are looking for support on any of our other work , or are curious about us in general, check out the following.
|
||||
|
||||
The [LinuxServer.io][linuxserverurl] team brings you another container release featuring easy user mapping and community support. Find us for support at:
|
||||
* [forum.linuxserver.io][forumurl]
|
||||
* [IRC][ircurl] on freenode at `#linuxserver.io`
|
||||
* [Podcast][podcasturl] covers everything to do with getting the most from your Linux Server plus a focus on all things Docker and containerisation!
|
||||
|
||||
# linuxserver/calibre-web
|
||||
[![](https://images.microbadger.com/badges/version/linuxserver/calibre-web.svg)](https://microbadger.com/images/linuxserver/calibre-web "Get your own version badge on microbadger.com")[![](https://images.microbadger.com/badges/image/linuxserver/calibre-web.svg)](https://microbadger.com/images/linuxserver/calibre-web "Get your own image badge on microbadger.com")[![Docker Pulls](https://img.shields.io/docker/pulls/linuxserver/calibre-web.svg)][hub][![Docker Stars](https://img.shields.io/docker/stars/linuxserver/calibre-web.svg)][hub][![Build Status](https://ci.linuxserver.io/buildStatus/icon?job=Docker-Builders/x86-64/x86-64-calibre-web)](https://ci.linuxserver.io/job/Docker-Builders/job/x86-64/job/x86-64-calibre-web/)
|
||||
|
||||
[Calibre-Web](https://github.com/janeczku/calibre-web) is a web app providing a clean interface for browsing, reading and downloading eBooks using an existing Calibre database. It is also possible to integrate google drive and edit metadata and your calibre library through the app itself.
|
||||
|
||||
This software is a fork of library and licensed under the GPL v3 License.
|
||||
|
||||
[![Calibre-Web](https://raw.githubusercontent.com/linuxserver/docker-templates/master/linuxserver.io/img/calibre-web-icon.png)][appurl]
|
||||
|
||||
## Usage
|
||||
|
||||
```
|
||||
docker create \
|
||||
--name=calibre-web \
|
||||
-v <path to data>:/config \
|
||||
-v <path to calibre library>:/books \
|
||||
-e PGID=<gid> -e PUID=<uid> \
|
||||
-p 8083:8083 \
|
||||
linuxserver/calibre-web
|
||||
```
|
||||
|
||||
## Parameters
|
||||
|
||||
`The parameters are split into two halves, separated by a colon, the left hand side representing the host and the right the container side.
|
||||
For example with a port -p external:internal - what this shows is the port mapping from internal to external of the container.
|
||||
So -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080
|
||||
http://192.168.x.x:8080 would show you what's running INSIDE the container on port 80.`
|
||||
|
||||
|
||||
|
||||
* `-p 8083` - calibre-web gui port
|
||||
* `-v /config` - where calibre-web stores it's database
|
||||
* `-v /books` - where your calibre database is located
|
||||
* `-e PGID` for GroupID - see below for explanation
|
||||
* `-e PUID` for UserID - see below for explanation
|
||||
|
||||
It is based on alpine linux with s6 overlay, for shell access whilst the container is running do `docker exec -it calibre-web /bin/bash`.
|
||||
|
||||
### User / Group Identifiers
|
||||
|
||||
Sometimes when using data volumes (`-v` flags) permissions issues can arise between the host OS and the container. We avoid this issue by allowing you to specify the user `PUID` and group `PGID`. Ensure the data volume directory on the host is owned by the same user you specify and it will "just work" ™.
|
||||
|
||||
In this instance `PUID=1001` and `PGID=1001`. To find yours use `id user` as below:
|
||||
|
||||
```
|
||||
$ id <dockeruser>
|
||||
uid=1001(dockeruser) gid=1001(dockergroup) groups=1001(dockergroup)
|
||||
```
|
||||
|
||||
## Setting up the application
|
||||
|
||||
Webui can be found at `http://<your-ip>:8083`
|
||||
|
||||
On the initial setup screen, enter `/books` as your calibre library location.
|
||||
|
||||
**Default admin login:**
|
||||
*Username:* admin
|
||||
*Password:* admin123
|
||||
|
||||
To reverse proxy with our Letsencrypt docker container use the following location block:
|
||||
```
|
||||
location /calibre-web {
|
||||
proxy_pass http://<your-ip>:8083;
|
||||
proxy_set_header Host $http_host;
|
||||
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
||||
proxy_set_header X-Scheme $scheme;
|
||||
proxy_set_header X-Script-Name /calibre-web;
|
||||
}
|
||||
```
|
||||
|
||||
|
||||
## Info
|
||||
|
||||
* Shell access whilst the container is running: `docker exec -it calibre-web /bin/bash`
|
||||
* To monitor the logs of the container in realtime: `docker logs -f calibre-web`
|
||||
|
||||
* container version number
|
||||
|
||||
`docker inspect -f '{{ index .Config.Labels "build_version" }}' calibre-web`
|
||||
|
||||
* image version number
|
||||
|
||||
`docker inspect -f '{{ index .Config.Labels "build_version" }}' calibre-web`
|
||||
|
||||
## Versions
|
||||
|
||||
+ **17.07.17:** Initial release
|
||||
|
@ -1,81 +0,0 @@
|
||||
[linuxserverurl]: https://linuxserver.io
|
||||
[forumurl]: https://forum.linuxserver.io
|
||||
[ircurl]: https://www.linuxserver.io/irc/
|
||||
[podcasturl]: https://www.linuxserver.io/podcast/
|
||||
[appurl]: www.example.com
|
||||
[hub]: https://hub.docker.com/r/example/example/
|
||||
|
||||
[![linuxserver.io](https://raw.githubusercontent.com/linuxserver/docker-templates/master/linuxserver.io/img/linuxserver_medium.png)][linuxserverurl]
|
||||
|
||||
The [LinuxServer.io][linuxserverurl] team brings you another container release featuring easy user mapping and community support. Find us for support at:
|
||||
* [forum.linuxserver.io][forumurl]
|
||||
* [IRC][ircurl] on freenode at `#linuxserver.io`
|
||||
* [Podcast][podcasturl] covers everything to do with getting the most from your Linux Server plus a focus on all things Docker and containerisation!
|
||||
|
||||
# <image-name>
|
||||
|
||||
Provide a short, concise description of the application. No more than two SHORT paragraphs. Link to sources where possible and include an image illustrating your point if necessary. Point users to the original applications website, as that's the best place to get support - not here.
|
||||
|
||||
Our Plex container has immaculate docs so follow that if in doubt for layout.
|
||||
|
||||
`IMPORTANT, replace all instances of <image-name> with the correct dockerhub repo (ie linuxserver/plex) and <container-name> information (ie, plex)`
|
||||
|
||||
## Usage
|
||||
|
||||
```
|
||||
docker create \
|
||||
--name=<container-name> \
|
||||
-v <path to data>:/config \
|
||||
-e PGID=<gid> -e PUID=<uid> \
|
||||
-p 1234:1234 \
|
||||
<image-name>
|
||||
```
|
||||
|
||||
## Parameters
|
||||
|
||||
`The parameters are split into two halves, separated by a colon, the left hand side representing the host and the right the container side.
|
||||
For example with a port -p external:internal - what this shows is the port mapping from internal to external of the container.
|
||||
So -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080
|
||||
http://192.168.x.x:8080 would show you what's running INSIDE the container on port 80.`
|
||||
|
||||
|
||||
|
||||
* `-p 1234` - the port(s)
|
||||
* `-v /config` - explain what lives here
|
||||
* `-e PGID` for GroupID - see below for explanation
|
||||
* `-e PUID` for UserID - see below for explanation
|
||||
|
||||
It is based on alpine linux with s6 overlay, for shell access whilst the container is running do `docker exec -it <container-name> /bin/bash`.
|
||||
|
||||
### User / Group Identifiers
|
||||
|
||||
Sometimes when using data volumes (`-v` flags) permissions issues can arise between the host OS and the container. We avoid this issue by allowing you to specify the user `PUID` and group `PGID`. Ensure the data volume directory on the host is owned by the same user you specify and it will "just work" ™.
|
||||
|
||||
In this instance `PUID=1001` and `PGID=1001`. To find yours use `id user` as below:
|
||||
|
||||
```
|
||||
$ id <dockeruser>
|
||||
uid=1001(dockeruser) gid=1001(dockergroup) groups=1001(dockergroup)
|
||||
```
|
||||
|
||||
## Setting up the application
|
||||
|
||||
Insert a basic user guide here to get a n00b up and running with the software inside the container. DELETE ME
|
||||
|
||||
|
||||
## Info
|
||||
|
||||
* Shell access whilst the container is running: `docker exec -it <container-name> /bin/bash`
|
||||
* To monitor the logs of the container in realtime: `docker logs -f <container-name>`
|
||||
|
||||
* container version number
|
||||
|
||||
`docker inspect -f '{{ index .Config.Labels "build_version" }}' <container-name>`
|
||||
|
||||
* image version number
|
||||
|
||||
`docker inspect -f '{{ index .Config.Labels "build_version" }}' <image-name>`
|
||||
|
||||
## Versions
|
||||
|
||||
+ **dd.MM.yy:** This is the standard Version type now.
|
BIN
root/defaults/app.db
Normal file
BIN
root/defaults/app.db
Normal file
Binary file not shown.
@ -1,26 +0,0 @@
|
||||
upstream wsgi-server {
|
||||
server 127.0.0.1:8083;
|
||||
}
|
||||
|
||||
server {
|
||||
listen 80 default_server;
|
||||
root /config/www;
|
||||
index index.html;
|
||||
|
||||
# Serve static files
|
||||
location ^~ /static/ {
|
||||
root /app/calibre-web/cps/;
|
||||
}
|
||||
|
||||
# Proxy connections to the application server
|
||||
location / {
|
||||
proxy_pass http://wsgi-server;
|
||||
proxy_redirect off;
|
||||
proxy_set_header Host $http_host;
|
||||
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
||||
proxy_set_header X-Scheme $scheme;
|
||||
proxy_set_header X-Forwarded-Host $server_name;
|
||||
proxy_set_header X-Real-IP $remote_addr;
|
||||
|
||||
}
|
||||
}
|
@ -1,6 +0,0 @@
|
||||
import os
|
||||
|
||||
workers = 1
|
||||
bind = "127.0.0.1:8083"
|
||||
user = 'abc'
|
||||
loglevel = 'info'
|
@ -1,6 +0,0 @@
|
||||
import os
|
||||
import sys
|
||||
|
||||
base_path = os.path.dirname(os.path.abspath(__file__))
|
||||
sys.path.append(os.path.join(base_path, 'vendor'))
|
||||
from cps import web
|
@ -1,12 +1,14 @@
|
||||
#!/usr/bin/with-contenv bash
|
||||
|
||||
# copy config
|
||||
[[ ! -e /app/calibre-web/gunicorn.conf.py ]] && \
|
||||
cp /defaults/gunicorn.conf.py /app/calibre-web/gunicorn.conf.py
|
||||
# copy database to /config if not exists
|
||||
[[ ! -e /config/app.db ]] && \
|
||||
cp /defaults/app.db /config/app.db \
|
||||
|
||||
[[ ! -e /app/calibre-web/wsgi.py ]] && \
|
||||
cp /defaults/wsgi.py /app/calibre-web/wsgi.py
|
||||
# create symlink for database
|
||||
[[ ! -L /app/calibre-web/app.db ]] && \
|
||||
ln -s /config/app.db /app/calibre-web/app.db
|
||||
|
||||
# permissions
|
||||
# permissions
|
||||
chown -R abc:abc \
|
||||
/config \
|
||||
/app/calibre-web
|
||||
|
@ -3,5 +3,4 @@
|
||||
cd /app/calibre-web || exit
|
||||
|
||||
exec \
|
||||
s6-setuidgid abc /usr/bin/gunicorn \
|
||||
-c /app/calibre-web/gunicorn.conf.py wsgi:web.app
|
||||
s6-setuidgid abc python /app/calibre-web/cps.py
|
||||
|
Loading…
Reference in New Issue
Block a user