我遇到运行docker compose的问题。特别是我收到这个错误:
ERROR: The Compose file './docker-compose.yml' is invalid because:
services.login-service.environment contains {"REDIS_HOST": "redis-server"}, which is an invalid type, it should be a string
这是我的yml文件:
version: '3'
services:
redis:
image: redis
ports:
- 6379:6379
networks:
- my-network
login-service:
tty: true
build: .
volumes:
- ./:/usr/src/app
ports:
- 3001:3001
depends_on:
- redis
networks:
- my-network
environment:
- REDIS_HOST: redis
command: bash -c "./wait-for-it.sh redis:6379 -- npm install && npm run dev"
networks:
my-network:
显然问题是我设置环境变量的地方,即使我看过多个使用相同语法的教程。它的目的是将REDIS_HOST
设置为Docker在构建映像时分配给Redis的任何IP地址。我可能需要改变哪些见解才能使其正常工作?
答案 0 :(得分:6)
有两种不同的实现方法。一个带有=
符号,另一个带有:
符号。检查以下示例以获取更多信息。
Docker编写带有=
符号的环境。
version: '3'
services:
webserver:
environment:
- USER=john
- EMAIL=johh@gmail.com
Docker编写带有:
符号的环境
version: '3'
services:
webserver:
environment:
USER:john
EMAIL:johh@gmail.com
答案 1 :(得分:1)
发生这种情况是因为前划线。您可以尝试不使用它,如下所示:
environment:
REDIS_HOST: redis