Mastodon et docker compose

Bonjour à tous,

J’aimerais savoir si un de vous a un docker compose fonctionnel de Mastodon, car j’ai passé l’après midi complète et la soirée a essayer d’installer mon instance sans succès.

J’ai essayé avec le docker compose officiel et celui de linux server, mais rien n’y fait, ca ne veut pas marcher.

Pour l’un c’est le role postgress qui n’existe pas, et pour l’autre la commande pour generer le premier user ne marche pas erreur avec ruby.

Si besoin je pourrais partager les dockers compose demain.

Merci d’avance

Hello !
Tu trouveras peut-être ton bonheur ici :

1 Like

Merci je vais regarder ca.

Bonjour, as tu trouvé ?
J’ai cela sur ma propre installation :wink:

Bonsoir,

J’ai pas eu le temps de regarder encore eu le.temps de tester mais le.fixhier proposé au dessus semble etre identique a ce que j’essaie de lancer.

Mais faut que je regarde en détails

Merci en tout cas

1 Like

Bonsoir,

ben je viens d’essayer mais j’ai toujours le meme probleme.

La seul difference avec le mien est la ligne de commande du container web :

    command: bundle exec puma -C config/puma.rb #    Docker compose Officiel
    command: bash -c "rm -f /mastodon/tmp/pids/server.pid; bundle exec rails s -p 3000" # Celui proposé

Les containerus Redis et Streaming sont OK.

Sur le containeur db :

2023-12-19 20:07:12.941 UTC [74] FATAL:  role "postgres" does not exist
2023-12-19 20:07:42.660 UTC [76] FATAL:  role "mastodon" does not exist

Les containeurs Web et Sidekis tournent en boucle

Voici mon compose

version: '3'
services:
  db:
    restart: always
    image: postgres:14-alpine
    shm_size: 256mb
    networks:
      - mastodon
    healthcheck:
      test: ['CMD', 'pg_isready', '-U', 'postgres']
    volumes:
      - ./postgres14:/var/lib/postgresql/data
    environment:
      - POSTGRES_DB=$DB_NAME
      - POSTGRES_USER=$DB_USER
      - POSTGRES_PASSWORD=$DB_PASS

  redis:
    restart: always
    image: redis:7-alpine
    networks:
      - mastodon
    healthcheck:
      test: ['CMD', 'redis-cli', 'ping']
    volumes:
      - ./redis:/data

  # es:
  #   restart: always
  #   image: docker.elastic.co/elasticsearch/elasticsearch:7.17.4
  #   environment:
  #     - "ES_JAVA_OPTS=-Xms512m -Xmx512m -Des.enforce.bootstrap.checks=true"
  #     - "xpack.license.self_generated.type=basic"
  #     - "xpack.security.enabled=false"
  #     - "xpack.watcher.enabled=false"
  #     - "xpack.graph.enabled=false"
  #     - "xpack.ml.enabled=false"
  #     - "bootstrap.memory_lock=true"
  #     - "cluster.name=es-mastodon"
  #     - "discovery.type=single-node"
  #     - "thread_pool.write.queue_size=1000"
  #   networks:
  #      - external_network
  #      - 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
  #     nofile:
  #       soft: 65536
  #       hard: 65536
  #   ports:
  #     - '127.0.0.1:9200:9200'

  web:
    build: .
    image: ghcr.io/mastodon/mastodon:v4.2.0
    restart: always
    env_file: .env.production
#    command: bundle exec puma -C config/puma.rb
    command: bash -c "rm -f /mastodon/tmp/pids/server.pid; bundle exec rails s -p 3000"
    networks:
      - npm
      - mastodon
    healthcheck:
      # prettier-ignore
      test: ['CMD-SHELL', 'wget -q --spider --proxy=off localhost:3000/health || exit 1']
#    ports:
#      - '127.0.0.1:3000:3000'
    depends_on:
      - db
      - redis
      # - es
    volumes:
      - ./public/system:/mastodon/public/system

  streaming:
    build: .
    image: ghcr.io/mastodon/mastodon:v4.2.0
    restart: always
    env_file: .env.production
    command: node ./streaming
    networks:
      - npm
      - mastodon
    healthcheck:
      # prettier-ignore
      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: ghcr.io/mastodon/mastodon:v4.2.0
    restart: always
    env_file: .env.production
    command: bundle exec sidekiq
    depends_on:
      - db
      - redis
    networks:
      - npm
      - mastodon
    volumes:
      - ./public/system:/mastodon/public/system
    healthcheck:
      test: ['CMD-SHELL', "ps aux | grep '[s]idekiq\ 6' || false"]

  ## Uncomment to enable federation with tor instances along with adding the following ENV variables
  ## http_hidden_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:
  npm:
    name: npm
  mastodon:
    name: mastodon