docker-compose 部署时报错:Failed to connect to db
来源:7-1 容器编排Swarm介绍
qq_某某某某_1
2020-09-24
老师,我在使用 docker-compose 快速部署投票应用的时候,发现当启动容器的时候会有以下两个错误
1.Failed to connect to db
2./usr/local/bin/mvn-entrypoint.sh: line 39: /usr/lib/jvm/java-7-openjdk-amd64/bin/java: No such file or directory
这个要怎么解决啊,完全没思路
写回答
1回答
-
qq_某某某某_1
提问者
2020-09-25
终于搞明白了
Failed to connect to db问题
通过 docker logs 命令可以查看到 db 的报错
Error: Database is uninitialized and superuser password is not specified. You must specify POSTGRES_PASSWORD for the superuser. Use "-e POSTGRES_PASSWORD=password" to set it in "docker run". You may also use POSTGRES_HOST_AUTH_METHOD=trust to allow all connections without a password. This is *not* recommended. See PostgreSQL documentation about "trust": https://www.postgresql.org/docs/current/auth-trust.html
原来是没有指定密码。。
所以在 docker-compose.yml 中修改
db: image: postgres:9.4 environment: POSTGRES_USER: "postgres" POSTGRES_HOST_AUTH_METHOD: "trust" volumes: - "db-data:/var/lib/postgresql/data" networks: - back-tier
2./usr/local/bin/mvn-entrypoint.sh: line 39: /usr/lib/jvm/java-7-openjdk-amd64/bin/java: No such file or directory
这里查看 ./worker 下的 Dockerfile 发现这里最后使用 java 路径和容器中的路径是不对的
maven 3.5-jdk-8-alpine fb4bb0d89941 23 months ago 119MB
具体可以进入这个容器内查看
docker run -it fb4bb0d89941 bash bash-4.4# /usr/lib/jvm/java-1.8-openjdk/bin/java --version
发现使用的是这个路径。。。修改 worker 的 Dockerfile,重新 build
docker-compose build worker
接着
docker-composer up
这里使用容器是很方便进行环境的搭建,但是貌似不同的镜像版本,拉下来都会导致不兼容的问题,就好像老师说的你那边可以运行,但是实际中部署还是出各种各样的幺蛾子哦,想问下老师这种问题究竟应该怎么规避??
012020-09-26
相似问题