[解決済み] SequelizeConnectionRefusedError: ECONNREFUSED 127.0.0.1:5432 を接続し、docker を使用して sequelize を使用する場合。
2022-02-12 06:48:26
質問
sequelizeをormバックエンドとして使用して、node postgresデータベースをDockerizeすると、次のエラーが発生します。
処理されない拒絶反応 SequelizeConnectionRefusedError: connect ECONNREFUSED 127.0.0.1:5432 app_1 | at connection.connect.err (/home/app/node_modules/sequelize/lib/dialects/postgres/connection-manager.js:170:24)
これらのコードの行が原因であるように思われる、これは私のローカル用であるため、dockerはこれらの資格情報を接続してはいけません。
if (process.env.NODE_ENV === "production") {
var sequelize = new Sequelize(process.env.DATABASE_URL);
} else {
// docker is looking at these credentials..... when it should not
var sequelize = new Sequelize("elifullstack", "eli", "", {
host: "127.0.0.1",
dialect: "postgres",
pool: {
max: 100,
min: 0,
idle: 200000,
// @note https://github.com/sequelize/sequelize/issues/8133#issuecomment-359993057
acquire: 1000000,
},
});
}
docker-compose.yml
# docker-compose.yml
version: "3"
services:
app:
build: ./server
depends_on:
- database
ports:
- 5000:5000
environment:
# database refers to the database server at the bottom called "database"
- PSQL_HOST=database
- PSQL_USER=postgres
- PORT=5000
- PSQL_NAME=elitypescript
command: npm run server
client:
build: ./client
image: react_client
links:
- app
working_dir: /home/node/app/client
volumes:
- ./:/home/node/app
ports:
- 3001:3001
command: npm run start
env_file:
- ./client/.env
database:
image: postgres:9.6.8-alpine
volumes:
- database:/var/lib/postgresql/data
ports:
- 3030:5432
volumes:
database:
./server/dockerFile
FROM node:10.6.0
COPY . /home/app
WORKDIR /home/app
COPY package.json ./
RUN npm install
EXPOSE 5000
他にも以下のような類似の質問を見てみましたが、結局問題解決には至りませんでした。
Docker - SequelizeConnectionRefusedError: ECONNREFUSED 127.0.0.1:3306 に接続する。
SequelizeConnectionRefusedError: ECONNREFUSED 127.0.0.1:3306 に接続する。
解決方法は?
解決したんだけど...
私が行ったのは、以下の変更です。
host: "127.0.0.1",
をこのように
let sequelize;
if (process.env.NODE_ENV === "production") {
sequelize = new Sequelize(process.env.DATABASE_URL);
} else {
sequelize = new Sequelize(
process.env.POSTGRES_DB || "elitypescript",
process.env.POSTGRES_USER || "eli",
"",
{
host: process.env.PSQL_HOST || "localhost",
dialect: "postgres",
pool: {
max: 100,
min: 0,
idle: 200000,
// @note https://github.com/sequelize/sequelize/issues/8133#issuecomment-359993057
acquire: 1000000,
},
}
);
}
このようにすると、ホストはdocker環境変数に設定されます。
PSQL_HOST: database
に接続し、それが
database:
image: postgres:9.6.8-alpine
volumes:
- database:/var/lib/postgresql/data
ports:
- 3030:5432
編集
# docker-compose.yml
version: "3"
services:
app:
build: ./server
depends_on:
- database
ports:
- 5000:5000
environment:
PSQL_HOST: database
POSTGRES_PASSWORD: ${POSTGRES_PASSWORD:-password}
POSTGRES_USER: ${POSTGRES_USER:-postgres}
POSTGRES_DB: ${POSTGRES_DB:-elitypescript}
command: npm run server
client:
build: ./client
image: react_client
links:
- app
working_dir: /home/node/app/client
volumes:
- ./:/home/node/app
ports:
- 3001:3001
command: npm run start
env_file:
- ./client/.env
database:
image: postgres:9.6.8-alpine
volumes:
- database:/var/lib/postgresql/data
ports:
- 3030:5432
volumes:
database:
関連
-
[解決済み】csvファイルをpostgresqlにインポートしようとすると、「予想される最後の列の後に余分なデータがある」。
-
[解決済み】PG COPY エラー: 整数の入力構文が無効です
-
[解決済み] PostgreSQLの命名規則
-
[解決済み] pg_restore の実行時に "[archiver] unsupported version (1.13) in file header" が表示される。
-
[解決済み] 私のシステムでpostgresを実行することができません。postgres is not in the sudoers file.と表示されます。この件は報告されます` [closed].
-
[解決済み] それぞれが外部キーである要素の PostgreSQL 配列
-
PostgreSQL学習パート5 - ローカルpsqlのパスワードの有無の設定
-
PostgreSQLデータベースエラーコードの説明
-
NodeJS Postgres エラー getaddrinfo ENOTFOUND(NodeJS Postgres エラー getaddrinfo ENOTFOUND)
-
[解決済み] リポジトリを使用せずに、あるホストから別のホストにDockerイメージをコピーする方法
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】PostgreSQL。クエリに結果データの保存先がない
-
[解決済み】csvファイルをpostgresqlにインポートしようとすると、「予想される最後の列の後に余分なデータがある」。
-
[解決済み】PG COPY エラー: 整数の入力構文が無効です
-
[解決済み] pg_restore の実行時に "[archiver] unsupported version (1.13) in file header" が表示される。
-
[解決済み] Postgresql : "-" 付近でシンタックスエラーが発生する。
-
[解決済み] Postgres のデータベース削除エラー: pq: 現在開いているデータベースを削除できません。
-
[解決済み] 特定のテーブルを除いてpostgres dbをダンプする方法は?
-
[解決済み] Java JUnitテストのためのPostgreSQLの組み込み
-
[解決済み] PostgreSQL ERROR: INSERT は式よりも多くのターゲット・カラムを持ちますが、そうではありません。
-
PostgreSQLデータベースエラーコードの説明