Skip to content

Commit

Permalink
Создание docker образа
Browse files Browse the repository at this point in the history
Добавил создание docker контейнера.

```
docker build -t inpx-web .
docker run -v /path/to/library:/library -v /path/to/library/flibusta.inpx:/app/data/index.inpx -p 12380:12380 inpx-web
```

Внутри контейнера создаётся пользователь inpx-web и id=1000 и сервер
запускается под этим пользователем.
Важно: запускать контейнер и монтировать внутрь папки с архивами в
`/library` и файл inpx в `/app/data/index.inpx`.

сloses bookpauk#16
  • Loading branch information
foxzi committed Jul 24, 2023
1 parent 84843fb commit 2b2d9c2
Show file tree
Hide file tree
Showing 2 changed files with 58 additions and 10 deletions.
35 changes: 35 additions & 0 deletions Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
FROM ubuntu:22.04

WORKDIR /app
COPY . /app

RUN useradd -ms /bin/bash -u 1000 -U -d /app inpx-web

RUN set -e \
&& apt update \
&& apt -y upgrade \
&& apt install -y --no-install-recommends curl wget zip ca-certificates \
&& curl -sL https://deb.nodesource.com/setup_20.x | bash \
&& apt install -y --no-install-recommends nodejs \
&& apt clean

RUN set -e \
&& npm install \
&& npm run build:client \
&& node build/prepkg.js linux \
&& mkdir -p /app/data \
&& chown -R inpx-web:inpx-web /app \
&& mkdir -p /library \
&& rm ./server/config/application_env \
&& echo "chown -R inpx-web:inpx-web /app"

RUN echo "#!/bin/bash" >> /entrypoint.sh \
&& echo "set -e" >> /entrypoint.sh \
&& echo "su inpx-web -c \"node server --lib-dir=/library --app-dir=/app/data --inpx=/app/data/index.inpx --recreate\"" >> /entrypoint.sh \
&& chmod +x /entrypoint.sh

EXPOSE 12380

HEALTHCHECK CMD curl --fail http://localhost:12380 || exit 1

ENTRYPOINT [ "/entrypoint.sh" ]
33 changes: 23 additions & 10 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -22,16 +22,19 @@ OPDS-сервер доступен по адресу [http://127.0.0.1:12380/opd
[Отблагодарить автора проекта](https://donatty.com/liberama)

##
* [Возможности программы](#capabilities)
* [Использование](#usage)
* [Параметры командной строки](#cli)
* [Конфигурация](#config)
* [Удаленная библиотека](#remotelib)
* [Фильтр по авторам и книгам](#filter)
* [Настройка https с помощью nginx](#https)
* [Сборка релизов](#build)
* [Запуск без сборки релиза](#native_run)
* [Разработка](#development)
- [inpx-web](#inpx-web)
- [](#)
- [Возможности программы](#возможности-программы)
- [Использование](#использование)
- [Параметры командной строки](#параметры-командной-строки)
- [Конфигурация](#конфигурация)
- [Удаленная библиотека](#удаленная-библиотека)
- [Фильтр по авторам и книгам](#фильтр-по-авторам-и-книгам)
- [Настройка https с помощью nginx](#настройка-https-с-помощью-nginx)
- [Сборка релизов](#сборка-релизов)
- [Запуск без сборки релиза](#запуск-без-сборки-релиза)
- [Разработка](#разработка)
- [Запуск в docker](#запуск-в-docker)

<a id="capabilities" />

Expand Down Expand Up @@ -369,4 +372,14 @@ node server --app-dir=.inpx-web
npm run dev
```

### Запуск в docker

```sh
docker build -t inpx-web .
docker run -v /path/to/library:/library -v /path/to/library/flibusta.inpx:/app/data/index.inpx -p 12380:12380 inpx-web
```

Внутри контейнера создаётся пользователь inpx-web и id=1000 и сервер запускается под этим пользователем.
Важно: запускать контейнер и монтировать внутрь папку с архивами в `/library` и файл inpx в `/app/data/index.inpx`.

Связаться с автором проекта: [bookpauk@gmail.com](mailto:bookpauk@gmail.com)

0 comments on commit 2b2d9c2

Please sign in to comment.