wppconnect-team / wpp-docker

Crie facilmente imagens do Docker com diferentes versões/combinações de linguagens e dependências comuns, para uso no WPPConnect.
Apache License 2.0
124 stars 63 forks source link

Volume postgres vazio #8

Open gustavoninetyone opened 2 years ago

gustavoninetyone commented 2 years ago

https://github.com/wppconnect-team/wpp-docker/blob/eca5f5eecdd8cd80846f3877ee687329099dbfda/docker-server-chatwoot/docker-compose.yaml#L49

Prezados, e correto criar a a base a "chatwoot_production" na "mão"? Pergunto isso por que a inicialização do postgres esta dando erro pois o volume esta vazio.

gustavoninetyone commented 2 years ago

Pessoal depois de entender que o rails precisa preparar as bases, a correção é muito simples. Basta alterar o comando abaixo:

command: ['bundle', 'exec', 'rails', 's', '-p', '3000', '-b', '0.0.0.0']

por:

    command: sh -c "
        bundle exec rails db:chatwoot_prepare &&
        bundle exec rails s -p 3000 -b 0.0.0.0"

Assim as bases serão preparadas sem a necessidade de executar comandos anteriores.

Caso obtenha sucesso nos testes. Podem fechar a issue. Estou à disposição!

gustavoninetyone commented 2 years ago

Caso ajude alguém, segue meus volumes criados e meu docker-compose e

docker volume create --driver local \
    --opt type=none \
    --opt device=wppconnect-chatwoot/postgres \
    --opt o=bind chatwoot_postgres
docker volume create --driver local \
    --opt type=none \
    --opt device=wppconnect-chatwoot/redis \
    --opt o=bind chatwoot_redis
docker volume create --driver local \
    --opt type=none \
    --opt device=/wppconnect-chatwoot/pgadmin \
    --opt o=bind chatwoot_pgadmin

Obs: Criei um volume do pgadmin para gerenciar melhor os arquivos de area de transferencia. Isso por que ele guarda o backups e quaisquer outros arquivos de download/upload em /storage

version: '3'

services:
  base: &base
    image: chatwoot/chatwoot:develop
    container_name: chatwoot
    hostname: lchatwoot
    env_file: .env 
    stdin_open: true 
    tty: true  
    networks: 
      - wpp-network     
  rails:
    <<: *base
    container_name: chatwoot-rails
    hostname: chatwoot-rails
    depends_on:
      - postgres
      - redis
    environment:
      - NODE_ENV=production
      - RAILS_ENV=production
    networks: 
      - wpp-network
    entrypoint: docker/entrypoints/rails.sh
    command: sh -c "
        bundle exec rails db:chatwoot_prepare &&
        bundle exec rails s -p 3000 -b 0.0.0.0"

  sidekiq:
    <<: *base
    container_name: chatwoot-sidekiq
    hostname: chatwoot-sidekiq
    depends_on:
      - postgres
      - redis
    environment:
      - NODE_ENV=production
      - RAILS_ENV=production
    networks: 
      - wpp-network
    restart: unless-stopped
    command: ['bundle', 'exec', 'sidekiq', '-C', 'config/sidekiq.yml']

  postgres:
    image: postgres:12
    container_name: chatwoot-postgres
    hostname: chatwoot-postgres
    restart: always
    volumes:
      - chatwoot_postgres:/var/lib/postgresql/data
    environment:
      - POSTGRES_DB=chatwoot
      - POSTGRES_USER=postgres
      - POSTGRES_PASSWORD=chatwoot
    networks: 
      - wpp-network

  pgadmin:
    image: dpage/pgadmin4:latest
    container_name: chatwoot-pgadmin4
    hostname: chatwoot-pgadmin4
    ports:
      - "8087:80" #pgadmin
    volumes:
      - chatwoot_pgadmin:/var/lib/pgadmin ## Area de Transferencia pgAdmin upload/download
    environment:
      PGADMIN_LISTEN_ADDRESS: "0.0.0.0"
      PGADMIN_DEFAULT_EMAIL: "demo@demo.com.br"
      PGADMIN_DEFAULT_PASSWORD: "PgAdmin2021!"
    depends_on:
      - postgres
    networks:
      - wpp-network

  redis:
    image: redis:alpine
    container_name: chatwoot-redis
    hostname: chatwoot-redis
    restart: always
    command: ["sh", "-c", "redis-server --requirepass \"$REDIS_PASSWORD\""]
    env_file: .env
    volumes:
      - chatwoot_redis:/data
    networks: 
      - wpp-network

  wppconnect-server:
    build: 
      context: ./wppconnect-server
      dockerfile: Dockerfile
    restart: always
    image: wppconnect-server
    container_name: wppconnect-server
    hostname: wppconnect-server
    entrypoint: docker-entrypoint.sh yarn start
    networks: 
      - wpp-network
    tty: true

  nginx:
    build: 
      context: ./wppconnect-nginx
      dockerfile: Dockerfile
    container_name: nginx
    entrypoint: nginx -g "daemon off;"
    ports:
      - "8080:8080" #chatwoot
      - "8081:8081" #wppconnect
      - "8082:8082" #pgadmin
      - "8083:8083" #redis
    networks: 
      - wpp-network
    depends_on:
      - wppconnect-server

volumes:
  chatwoot_postgres:
    external: true
  chatwoot_redis:
    external: true
  chatwoot_pgadmin:
    external: true

networks: 
  wpp-network:
    name: wpp-network
    driver: bridge
renat473 commented 1 year ago

olá,

Obrigado pela sua contribuição, a issues será encerrado caso tenha problemas novamente favor abrir uma nova.

EUrubatan commented 1 year ago

Se vc estiver usando ubuntu server, pode ser que seu usuario não tem permisão na pasta e por isso não aparece. eu tambem fiquei oensando isso. depois de meio dia descobri kkkkkk