質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
docker-compose

docker-composeとは、複数のコンテナで構成されるサービスを提供する手順を自動的し管理を簡単にするツール。composeファイルを使用しコマンド1回で設定した全サービスを作成・起動することが可能です。

NestJS

NestJSは、Node.jsアプリケーションを構築するためのフレームワーク。Typescript製でAngularの影響を強く受けています。Expressで利用できるアーキテクチャをそのまま利用でき、保守が簡単なアプリケーションの構築が可能。開発を容易にするCLIも用意されています。

PostgreSQL

PostgreSQLはオープンソースのオブジェクトリレーショナルデータベース管理システムです。 Oracle Databaseで使われるPL/SQLを参考に実装されたビルトイン言語で、Windows、 Mac、Linux、UNIX、MSなどいくつものプラットフォームに対応しています。

Q&A

解決済

1回答

4799閲覧

”npx prisma migrate dev” でエラー

Akihi-Sumi

総合スコア10

docker-compose

docker-composeとは、複数のコンテナで構成されるサービスを提供する手順を自動的し管理を簡単にするツール。composeファイルを使用しコマンド1回で設定した全サービスを作成・起動することが可能です。

NestJS

NestJSは、Node.jsアプリケーションを構築するためのフレームワーク。Typescript製でAngularの影響を強く受けています。Expressで利用できるアーキテクチャをそのまま利用でき、保守が簡単なアプリケーションの構築が可能。開発を容易にするCLIも用意されています。

PostgreSQL

PostgreSQLはオープンソースのオブジェクトリレーショナルデータベース管理システムです。 Oracle Databaseで使われるPL/SQLを参考に実装されたビルトイン言語で、Windows、 Mac、Linux、UNIX、MSなどいくつものプラットフォームに対応しています。

0グッド

0クリップ

投稿2022/03/28 05:18

YouTubeの動画(https://www.youtube.com/watch?v=GHTA143_b-s&t=2090s)
を参考に、docker-composeで、Nest.js-PostgreSQLの勉強をしています。
しかし動画の36:20あたり、コンテナ内で「npx prisma migrate dev」を実行しようとしたら、以下のエラーが出ました。

bash

1root@-------:/app# npx prisma migrate dev 2 3Environment variables loaded from .env 4Prisma schema loaded from prisma/schema.prisma 5Datasource "db": PostgreSQL database "nest", schema "public" at "dev-db:5434" 6 7Error: P1001: Can't reach database server at `dev-db`:`5434` 8 9Please make sure your database server is running at `dev-db`:`5434`.

「docker compose ps」では、STATUSはきちんとrunningになっています。
コンテナには「docker compose exec api bash」で入りました。
これを実行したいです。
とても面倒だとは思いますが、ご協力よろしくお願いします。

環境

WSL2: Ubuntu20.04
Docker  v20.10.13
docker compose  v2.2.3

コード

Dockerfile

FROM node:17 RUN mkdir -p /app WORKDIR /app RUN npm i -g @nestjs/cli RUN apt-get update && apt-get upgrade -y RUN apt-get install -y \ postgresql-client \ vim CMD ["yarn", "start:dev"]

docker-compose.yml

version: '3' services: api: build: . container_name: nest tty: true ports: - 3000:3000 volumes: - ./app:/app depends_on: - dev-db links: - dev-db restart: always dev-db: image: postgres:14 container_name: pgdb ports: - 5434:5432 environment: POSTGRES_USER: postgres POSTGRES_PASSWORD: 123 POSTGRES_DB: nest POSTGRES_INITDB_ARGS: "--encoding=UTF-8" restart: always

.env ("npx prisma init"を実行すると自動で生成される)

(省略) DATABASE_URL="postgresql://postgres:123@dev-db:5434/nest?schema=public"

やってみたこと

dev-dbコンテナ内にある、/var/lib/postgresql/data/postgresql.conf ファイルを編集。

(略) listen_addresses = '*' port = 5434 (略)

port のコメントアウトを外し、5434に変更。
効果なし。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

自己解決

docker-compose.ymlと.envを以下のようにしたら解決しました。

docker-compose.yml

dev-db: image: postgres:14 container_name: pgdb ports: - 5432:5432 environment: POSTGRES_USER: postgres POSTGRES_PASSWORD: 123 POSTGRES_DB: nest POSTGRES_INITDB_ARGS: "--encoding=UTF-8" restart: always

.env

DATABASE_URL="postgresql://postgres:123@dev-db:5432/nest"

投稿2022/03/29 05:25

Akihi-Sumi

総合スコア10

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問