diff --git a/Dockerfile b/Dockerfile index c19640e09..42feef173 100644 --- a/Dockerfile +++ b/Dockerfile @@ -47,10 +47,10 @@ RUN echo "http://nl.alpinelinux.org/alpine/latest-stable/community" >> /etc/apk/ USER pleroma COPY --from=build --chown=pleroma:0 /release ${HOME} +ENV PATH="${HOME}/bin:${PATH}" COPY ./config/docker.exs /etc/pleroma/config.exs -COPY ./docker-entrypoint.sh ${HOME} EXPOSE 4000 -CMD ["/bin/ash", "/opt/pleroma/docker-entrypoint.sh"] +CMD ["pleroma", "start"] diff --git a/docker-compose.yml b/docker-compose.yml new file mode 100644 index 000000000..734f746a8 --- /dev/null +++ b/docker-compose.yml @@ -0,0 +1,114 @@ +version: '3' +services: + + web: + build: . + image: pleroma/pleroma + restart: always + env_file: .env.production + networks: + - external_network + - internal_network + healthcheck: + test: ["CMD", "curl", "-f", "localhost:3000/health"] + ports: + - "127.0.0.1:3000:3000" + depends_on: + - db + - redis +# - es + volumes: + - ./volumes/pleroma/uploads:/var/lib/pleroma/uploads + + db: + restart: always + image: postgres:11-alpine + networks: + - internal_network + healthcheck: + test: ["CMD", "pg_isready", "-U", "postgres"] + volumes: + - ./volumes/postgres:/var/lib/postgresql/data + +# redis: +# restart: always +# image: redis:6-alpine +# networks: +# - internal_network +# healthcheck: +# test: ["CMD", "redis-cli", "ping"] +# volumes: +# - ./redis:/data + +# es: +# restart: always +# image: docker.elastic.co/elasticsearch/elasticsearch-oss:6.8.10 +# environment: +# - "ES_JAVA_OPTS=-Xms512m -Xmx512m" +# - "cluster.name=es-pleroma" +# - "discovery.type=single-node" +# - "bootstrap.memory_lock=true" +# networks: +# - internal_network +# healthcheck: +# test: ["CMD-SHELL", "curl --silent --fail localhost:9200/_cluster/health || exit 1"] +# volumes: +# - ./elasticsearch:/usr/share/elasticsearch/data +# ulimits: +# memlock: +# soft: -1 +# hard: -1 + +# streaming: +# build: . +# image: pleroma/pleroma +# restart: always +# env_file: .env.production +# command: node ./streaming +# networks: +# - external_network +# - internal_network +# healthcheck: +# test: ["CMD-SHELL", "wget -q --spider --proxy=off localhost:4000/api/v1/streaming/health || exit 1"] +# ports: +# - "127.0.0.1:4000:4000" +# depends_on: +# - db +# - redis + +# sidekiq: +# build: . +# image: pleroma/pleroma +# restart: always +# env_file: .env.production +# command: bundle exec sidekiq +# depends_on: +# - db +# - redis +# networks: +# - external_network +# - internal_network +# volumes: +# - ./public/system:/mastodon/public/system + +## Uncomment to enable federation with tor instances along with adding the following ENV variables +## http_proxy=http://privoxy:8118 +## ALLOW_ACCESS_TO_HIDDEN_SERVICE=true +# tor: +# image: sirboops/tor +# networks: +# - external_network +# - internal_network +# +# privoxy: +# image: sirboops/privoxy +# volumes: +# - ./priv-config:/opt/config +# networks: +# - external_network +# - internal_network + +networks: + external_network: + internal_network: + internal: true diff --git a/docker-entrypoint.sh b/docker-entrypoint.sh deleted file mode 100755 index f56f8c50a..000000000 --- a/docker-entrypoint.sh +++ /dev/null @@ -1,14 +0,0 @@ -#!/bin/ash - -set -e - -echo "-- Waiting for database..." -while ! pg_isready -U ${DB_USER:-pleroma} -d postgres://${DB_HOST:-db}:5432/${DB_NAME:-pleroma} -t 1; do - sleep 1s -done - -echo "-- Running migrations..." -$HOME/bin/pleroma_ctl migrate - -echo "-- Starting!" -exec $HOME/bin/pleroma start