From bacc1cbd0da9a4367d32241201bac069a051b106 Mon Sep 17 00:00:00 2001 From: FireMasterK <20838718+FireMasterK@users.noreply.github.com> Date: Thu, 1 Oct 2020 03:41:47 +0000 Subject: [PATCH] Create a working docker-compose file. --- Dockerfile | 10 +++++----- README.md | 12 ++++++++++-- docker-compose.yml | 18 ++++++++++++++++++ nitter.conf | 2 +- start.sh | 4 ---- 5 files changed, 34 insertions(+), 12 deletions(-) create mode 100644 docker-compose.yml delete mode 100755 start.sh diff --git a/Dockerfile b/Dockerfile index 49fb5d5..ee44e32 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,5 +1,5 @@ FROM nimlang/nim:alpine as nim -MAINTAINER setenforce@protonmail.com +LABEL maintainer="setenforce@protonmail.com" EXPOSE 8080 RUN apk --no-cache add libsass-dev libffi-dev openssl-dev redis openssh-client @@ -11,9 +11,9 @@ RUN nimble build -y -d:release --passC:"-flto" --passL:"-flto" \ && strip -s nitter \ && nimble scss -FROM redis:6-alpine +FROM alpine:latest WORKDIR /src/ -RUN apk --no-cache add pcre-dev sqlite-dev -COPY --from=nim /src/nitter/nitter /src/nitter/start.sh /src/nitter/nitter.conf ./ +RUN apk --no-cache add pcre sqlite +COPY --from=nim /src/nitter/nitter /src/nitter/nitter.conf ./ COPY --from=nim /src/nitter/public ./public -CMD ["./start.sh"] +CMD ./nitter diff --git a/README.md b/README.md index 26ae3c5..ea28d80 100644 --- a/README.md +++ b/README.md @@ -100,15 +100,23 @@ using the systemd service below. You should run Nitter behind a reverse proxy such as [Nginx](https://github.com/zedeus/nitter/wiki/Nginx) or Apache for security reasons. +To run nitter with docker, you will need to install redis before you run these commands. + To build and run Nitter in Docker: ```bash docker build -t nitter:latest . -docker run -v $(pwd)/nitter.conf:/src/nitter.conf -d -p 8080:8080 nitter:latest +docker run -v $(pwd)/nitter.conf:/src/nitter.conf -d --network host -p 8080:8080 nitter:latest ``` A prebuilt Docker image is provided as well: ```bash -docker run -v $(pwd)/nitter.conf:/src/nitter.conf -d -p 8080:8080 zedeus/nitter:latest +docker run -v $(pwd)/nitter.conf:/src/nitter.conf -d --network host -p 8080:8080 zedeus/nitter:latest +``` + +Using docker-compose to run both nitter and redis as different containers: +Change redisHost from `localhost` to `redis` in `nitter.conf` and then run: +```bash +docker-compose up -d ``` Note the Docker commands expect a `nitter.conf` file in the directory you run them. diff --git a/docker-compose.yml b/docker-compose.yml new file mode 100644 index 0000000..0e66b3a --- /dev/null +++ b/docker-compose.yml @@ -0,0 +1,18 @@ +version: "3.8" +services: + redis: + image: redis:6-alpine + restart: unless-stopped + volumes: + - redis-data:/var/lib/redis + nitter: + image: zedeus/nitter:latest + restart: unless-stopped + depends_on: + - redis + ports: + - "8080:8080" + volumes: + - ./nitter.conf:/src/nitter.conf +volumes: + redis-data: diff --git a/nitter.conf b/nitter.conf index aa27a65..f15d07a 100644 --- a/nitter.conf +++ b/nitter.conf @@ -10,7 +10,7 @@ hostname = "nitter.net" [Cache] listMinutes = 240 # how long to cache list info (not the tweets, so keep it high) rssMinutes = 10 # how long to cache rss queries -redisHost = "localhost" +redisHost = "localhost" # Change to redis if using docker-compose redisPort = 6379 redisConnections = 20 # connection pool size redisMaxConnections = 30 diff --git a/start.sh b/start.sh deleted file mode 100755 index 9a1626a..0000000 --- a/start.sh +++ /dev/null @@ -1,4 +0,0 @@ -#!/usr/bin/env sh - -nohup redis-server & -./nitter