Closed7
NestJS x PrismaをDockerで動かす際にハマったこと
各種パッケージバージョン
パッケージ | バージョン |
---|---|
prisma | 4.1.1 |
@prisma/client | 4.1.1 |
@nestjs/apollo | 10.0.19 |
@nestjs/cli | 9.0.0 |
@nestjs/common | 9.0.0 |
Error: Unknown binaryTarget linux-arm64-openssl-undefined and no custom engine files were provided
解決策
以下記事を参考にさせてもらい、解決。
cache: "bounded"
or persistedQueries: false
in your ApolloServer constructor, or see https://go.apollo.dev/s/cache-backends for other alternatives.
Persisted queries are enabled and are using an unbounded cache. Your server is vulnerable to denial of service attacks via memory exhaustion. Set 続いてのエラー。
無事containerの立ち上げだけはできたものの、表題のエラーに怒られる。
内容としては、 GraphQLModule.forRoot
に cache: "bounded"
を定義しなさいとのことなので、仰せの通りに。
The "@nestjs/graphql" plugin is not compatible with Nest CLI. Neither "after()" nor "before()" nor "afterDeclarations()" function have been provided.
次なるエラー。
nest build
を実行した際に発生。
どうやら nest start
でも出る模様。
解決策
策というほどでもないが、node_modulesを消して yarn install
しなおしたら発生しなくなった。
localhost
:3306
Error: P1001: Can't reach database server at DBに接続しようとした時に出てくるエラー。
解決策
docker-composeで同一のnetworkを参照するようにして、DBのホストの環境変数を localhost
からDBのサービス名へ変更。
docker-compose.yml
services:
db:
...
networks:
- backend
api:
...
depends_on:
db:
condition: service_started
networks:
- backend
networks:
backend:
.env
- DB_HOST=localhost
+ DB_HOST=db
TypeError: collection is not iterable
prisma generate
実行時に出たエラー。
解決策
めちゃくちゃハマってしまったのだが、NestJSのサービス側のvolumeに /app/node_modules
を付与することで解決。
api:
volume:
- .:/app
- /app/node_modules
無事 docker-compose up
でWebからアクセスできたので、クローズ。
このスクラップは2022/08/12にクローズされました