一般来说,我对开发相对较新,对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”上的连接?*
1条答案
按热度按时间yzxexxkh1#
而不是localhost按下ctrl并点击它传递的url有时不打开你的网站的localhost端口