首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >saleor后端在来自数字海洋的droplet ip下不可用

saleor后端在来自数字海洋的droplet ip下不可用
EN

Stack Overflow用户
提问于 2021-01-13 23:43:46
回答 1查看 328关注 0票数 0

我想完全通过docker部署我的saleor-shop应用程序。因此,我已经为saleor backend、storefront和dashboard构建了各自的镜像。

后端在localhost:8000上可用/graphql Storefront在localhost:3000上运行Dashboard在localhost:9000上运行

如果我想在droplet IP上运行应用程序-->我在运行saleor后端时会遇到问题。到目前为止,尝试访问XXX.XX.XXX.XXX:8000的结果是“无法访问此站点”。店面和仪表板可以在XXX.XX.XXX.XXX:3000和XXX.XX.XXX.XXX:9000上访问,但不需要与后端进行任何交互,因为它不可用。这就是为什么graphql调用在店面上不起作用,登录仪表板也不起作用,因为后端不可用。我想我遗漏了一些东西,如果有任何帮助,我将不胜感激。

[

在我的droplet中,我使用以下docker-compose.yml文件来启动我的docker容器:

代码语言:javascript
复制
services:
  api:
    ports:
      - 8000:8000
    image: XXX/murukku-shop
    restart: unless-stopped
    networks:
      - saleor-backend-tier
    depends_on:
      - db
      - redis
      - jaeger
    env_file: common.env
    environment:
      - JAEGER_AGENT_HOST=jaeger
      - STOREFRONT_URL=http://XXX.XX.XXX.XXX:3000/
      - DASHBOARD_URL=http://XXX.XX.XXX.XXX:9000/

  storefront:
    image: XXX/murukku-storefront
    ports:
      - 3000:80
    restart: unless-stopped

  dashboard:
    image: XXX/murukku-dashboard
    ports:
      - 9000:80
    restart: unless-stopped

  db:
    image: library/postgres:11.1-alpine
    ports:
      - 5432:5432
    restart: unless-stopped
    networks:
      - saleor-backend-tier
    volumes:
      - saleor-db:/var/lib/postgresql/data
    environment:
      - POSTGRES_USER=saleor
      - POSTGRES_PASSWORD=saleor

  redis:
    image: library/redis:5.0-alpine
    ports:
      - 6379:6379
    restart: unless-stopped
    networks:
      - saleor-backend-tier
    volumes:
      - saleor-redis:/data

  worker:
    image: XXX/murukku-shop
    restart: unless-stopped
    networks:
      - saleor-backend-tier
    env_file: common.env
    depends_on:
      - redis
      - mailhog
    environment:
      - EMAIL_URL=smtp://mailhog:1025

  jaeger:
    image: jaegertracing/all-in-one
    ports:
      - "5775:5775/udp"
      - "6831:6831/udp"
      - "6832:6832/udp"
      - "5778:5778"
      - "16686:16686"
      - "14268:14268"
      - "9411:9411"
    restart: unless-stopped
    networks:
      - saleor-backend-tier

  mailhog:
    image: mailhog/mailhog
    ports:
      - 1025:1025 # smtp server
      - 8025:8025 # web ui. Visit http://localhost:8025/ to check emails
    restart: unless-stopped
    networks:
      - saleor-backend-tier

volumes:
  saleor-db:
    driver: local
  saleor-redis:
    driver: local
  saleor-media:

networks:
  saleor-backend-tier:
    driver: bridge

EN

回答 1

Stack Overflow用户

发布于 2021-01-29 04:38:40

我在docker环境中测试Saleor或者像你一样,我找到了一个解决方案!你必须设置更多的环境变量,它们都在storefrontdashboard的github页面上进行了解释。如果你需要,这是我的配置:

代码语言:javascript
复制
version: '2'

services:
  api:
    ports:
      - 8000:8000
    build:
      context: ./saleor
      dockerfile: ./Dockerfile
      args:
        STATIC_URL: '/static/'
    restart: unless-stopped
    networks:
      - saleor-backend-tier
    depends_on:
      - db
      - redis
      - jaeger
    volumes:
      - ./saleor/saleor/:/app/saleor:Z
      - ./saleor/templates/:/app/templates:Z
      - ./saleor/tests/:/app/tests
      # shared volume between worker and api for media
      - saleor-media:/app/media
    command: python manage.py runserver 0.0.0.0:8000
    env_file: common.env
    environment:
      # - DEFAULT_CURRENCY=EUR
      #- DEFAULT_COUNTRY=
      - ALLOWED_CLIENT_HOSTS=localhost,127.0.0.1,192.168.0.50
      - ALLOWED_HOSTS=localhost,192.168.0.50
      - JAEGER_AGENT_HOST=jaeger
      - STOREFRONT_URL=http://192.168.0.50:3000/
      - DASHBOARD_URL=http://192.168.0.50:9000/

  storefront:
    build:
      context: ./saleor-storefront
      dockerfile: ./Dockerfile.dev
    ports:
      - 3000:3000
    restart: unless-stopped
    volumes:
      - ./saleor-storefront/:/app:cached
      - /app/node_modules/
    command: npm start -- --host 0.0.0.0
    environment: 
      - NEXT_PUBLIC_API_URI=http://192.168.0.50:8000/graphql/
      - API_URI=http://192.168.0.50:8000/graphql/

  dashboard:
    build:
      context: ./saleor-dashboard
      dockerfile: ./Dockerfile.dev
    ports:
      - 9000:9000
    restart: unless-stopped
    volumes:
      - ./saleor-dashboard/:/app:cached
      - /app/node_modules/
    command: npm start -- --host 0.0.0.0
    environment: 
      - API_URI=http://192.168.0.50:8000/graphql/
      - APP_MOUNT_URI=/dashboard/
      - STATIC_URL=http://192.168.0.50:9000/

  db:
    image: library/postgres:11.1-alpine
    ports:
      - 5432:5432
    restart: unless-stopped
    networks:
      - saleor-backend-tier
    volumes:
      - saleor-db:/var/lib/postgresql/data
    environment:
      - POSTGRES_USER=saleor
      - POSTGRES_PASSWORD=saleor

  redis:
    image: library/redis:5.0-alpine
    ports:
      - 6379:6379
    restart: unless-stopped
    networks:
      - saleor-backend-tier
    volumes:
      - saleor-redis:/data

  worker:
    build:
      context: ./saleor
      dockerfile: ./Dockerfile
      args:
        STATIC_URL: '/static/'
    command: celery -A saleor --app=saleor.celeryconf:app worker --loglevel=info
    restart: unless-stopped
    networks:
      - saleor-backend-tier
    env_file: common.env
    depends_on:
      - redis
      - mailhog
    volumes:
      - ./saleor/saleor/:/app/saleor:Z,cached
      - ./saleor/templates/:/app/templates:Z,cached
      # shared volume between worker and api for media
      - saleor-media:/app/media
    environment:
      - EMAIL_URL=smtp://mailhog:1025

  jaeger:
    image: jaegertracing/all-in-one
    ports:
      - "5775:5775/udp"
      - "6831:6831/udp"
      - "6832:6832/udp"
      - "5778:5778"
      - "16686:16686"
      - "14268:14268"
      - "9411:9411"
    restart: unless-stopped
    networks:
      - saleor-backend-tier

  mailhog:
    image: mailhog/mailhog
    ports: 
      - 1025:1025 # smtp server
      - 8025:8025 # web ui. Visit http://localhost:8025/ to check emails
    restart: unless-stopped
    networks:
      - saleor-backend-tier

volumes:
  saleor-db:
    driver: local
  saleor-redis:
    driver: local
  saleor-media:

networks:
  saleor-backend-tier:
    driver: bridge

PS :这是我在stackoverflow上的第一个答案:如果我解决了你的问题,别忘了勾选我作为答案;)

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65705180

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档