即使我的Docker容器已启动,也找不到本地主机?

nbysray5  于 2022-12-11  发布在  Docker
关注(0)|答案(1)|浏览(227)

一般来说,我对开发相对较新,对Docker领域尤其是Rails相对较新,如果这听起来像是一个愚蠢的问题,请提前道歉。
我尝试在一个由4个服务(2个网站和2个API)+ Postgresql组成的monorepo中运行一个应用程序,在Docker Compose的帮助下。最终目标是在VPS上运行Traefik(一旦我让当前的应用程序在本地工作)。
以下是不同的服务:

  • Postgres(通过Dockerhub中提供的Postgres图像)
  • B2C网站(NextJS)
  • 一个管理员网站(与创建ViteReact)
  • API(Rails)。它应该链接到Postgres数据库
  • Strapi API(用于B2C网站的内容)。Strapi有自己的SQLite数据库。只有B2C网站需要来自Strapi的数据。

当我运行docker compose up -d命令时,它似乎在工作(见下面的图片)

但是当我访问其中一个网站(除了似乎正常工作的Strapi)(https://localhost:3009,或3008或3001)时,我什么也得不到(见下文)。

但是,我没有看到任何应用程序的日志中有任何错误。例如,Rails API日志如下:

我假设我的配置中有错误,特别是在Rails API的database.yml配置和docker-compose.yml文件中。

数据库.yml:

default: &default
  adapter: postgresql
  encoding: unicode
  pool: <%= ENV.fetch("RAILS_MAX_THREADS") { 5 } %>
  host: pg

development:
  <<: *default
  database: chana_api_v2_development

test:
  <<: *default
  database: chana_api_v2_test

production:
  <<: *default
  database: chana_api_v2_production
  username: chana
  password: <%= ENV["CHANA_DATABASE_PASSWORD"] %>

停靠-撰写.yml

version: '3'
services:
# ----------------POSTGRES -----------------
  pg:
    image: postgres:14.6
    container_name: pg
    networks:
      - chana_postgres_network
    ports:
      - "5432:5432"
    environment:
      POSTGRES_DB: chana_development
      POSTGRES_USER: chana
      POSTGRES_PASSWORD: chana
    volumes:
      - ./data:/var/lib/postgresql/data

# ----------------- RAILS API -----------------
  api:
    build: ./api
    container_name: api
    networks:
      - chana_postgres_network
      - api_network
    volumes:
      - ./api:/chana_api
    ports:
      - "3001:3000"
    depends_on:
      - pg

# ----------------- STRAPI -----------------
  strapi:
    build:
      context: ./strapi
      args:
        BASE_VERSION: latest
        STRAPI_VERSION: 4.5.0
    container_name: chana-strapi
    restart: unless-stopped
    env_file: .env
    environment:
      NODE_ENV: ${NODE_ENV}
      HOST: ${HOST}
      PORT: ${PORT}
    volumes:
      - ./strapi:/srv/app
      - strapi_node_modules:/srv/app/node_modules
    ports:
      - "1337:1337"

  # ----------------- B2C website -----------------
  public-front: 
    build: ./public-front
    container_name: public-front
    restart: always
    command: yarn dev
    ports:
      - "3009:3000"
    networks: 
      - api_network
      - chana_postgres_network
    depends_on:
      - api
      - strapi
    volumes:
      - ./public-front:/app
      - /app/node_modules
      - /app/.next

  # ----------------- ADMIN website -----------------
  admin-front: 
    build: ./admin-front
    container_name: admin-front
    restart: always
    command: yarn dev
    ports:
      - "3008:3000"
    networks: 
      - api_network
      - chana_postgres_network
    depends_on:
      - api
    volumes:
      - ./admin-front:/app
      - /app/node_modules
      - /app/.next

volumes:
  strapi_node_modules:

networks:
  api_network:
  chana_postgres_network:

你知道为什么我在网站上看不到任何东西吗?
我尝试更改相关的不同文件的代码,特别是database.yml、docker-compose.yml和每个应用程序的dockerfiles。
此外,我尝试使用命令docker exec -it api /bin/sh查看API容器(Rails),以便通过Rails控制台检查数据库,但我收到以下错误消息:

  • activeRecord::ConnectionNotEstablished无法连接到服务器:没有这样的文件或目录。服务器是否在本地运行并接受Unix域套接字“/var/run/postgresql/.s.PGSQL.5432”上的连接?*

yzxexxkh

yzxexxkh1#

而不是localhost按下ctrl并点击它传递的url有时不打开你的网站的localhost端口

相关问题