![](/img/trans.png)
[英]Cypress could not verify that this server is running when using Docker and Docker Compose
[英]Running parse server with docker compose
我有一个场景,我需要从 Dockerfile 运行解析服务器,并且 docker 文件应该在 docker-compose 中运行。 此外,我需要将配置外部化为 json 文件。
主要问题是,如果我在 docker-compose 中运行此 Dockerfile,则找不到配置文件。
这是我的 dockerfile 声明:
FROM parseplatform/parse-server:4.2.0
COPY config.json config.json
EXPOSE 1337
CMD ["/parse-server/bin/parse-server", "config.json"]
这是我的 config.json 文件:
{
"appId": "appId",
"masterKey": "masterKey",
"databaseURI": "mongodb://usr:pass@mongodb:27017"
}
这工作正常,就像我构建它并运行它一样:
docker build -f Dockerfile -t parse .
docker run --name parse -p 1337:1337 -d parse config.json
它工作正常,简而言之,docker 日志中的重要行是这样的:
Configuration loaded from /parse-server/config.json
但是,如果我尝试以这种方式在 docker-compose 文件中运行它:
version: '3.5'
services:
db:
image: mongo
ports:
- 27017:27017
environment:
MONGO_INITDB_ROOT_USERNAME: usr
MONGO_INITDB_ROOT_PASSWORD: pass
parse:
build: .
ports:
- 1337:1337
depends_on:
- db
它不起作用,它只是打印解析服务器帮助以及以下行:
Configuration loaded from /parse-server/bin/parse-server
我已经测试了几个场景(注意:不起作用意味着找不到配置文件):
问题:
非常感谢!
你能试试下面的docker-compose.yml
version: '3.5'
services:
db:
image: mongo
ports:
- 27017:27017
environment:
MONGO_INITDB_ROOT_USERNAME: usr
MONGO_INITDB_ROOT_PASSWORD: pass
parse:
build: .
command: "config.json"
ports:
- 1337:1337
depends_on:
- db
command
将覆盖CMD
中的Dockerfile
。
或者,如果您不想在此处指定命令,您可以更改 Dockerfile。
FROM parseplatform/parse-server:4.2.0
COPY config.json config.json
EXPOSE 1337
CMD ["config.json"]. # Changed
go 通过您的问题:
parse-server
命令在容器运行时执行,复制命令在映像的构建时运行config.json
和/parse-server/bin/parse-server config.json
我会更改您的 docker-compose 以反映您使用 docker 运行的内容:
version: '3.5'
services:
db:
image: mongo
ports:
- 27017:27017
environment:
MONGO_INITDB_ROOT_USERNAME: usr
MONGO_INITDB_ROOT_PASSWORD: pass
parse:
build: .
ports:
- 1337:1337
depends_on:
- db
# this is exactly what you are handing to vanilla docker
command: "config.json"
并像docker-compose up -d
一样运行它
但是,我认为您使用卷的建议要好一些,这样配置更改就不需要重新构建映像:
version: '3.5'
services:
db:
image: mongo
ports:
- 27017:27017
environment:
MONGO_INITDB_ROOT_USERNAME: usr
MONGO_INITDB_ROOT_PASSWORD: pass
parse:
build: .
ports:
- 1337:1337
depends_on:
- db
volumes:
- parse_vol:/path/to/config # config is a folder in the container, mind you
command: "/path/to/config/config.json"
volumes:
parse_vol:
driver: local
driver-opts:
o: bind
type: none
device: /local/path/to/config # this is also a folder that contains config.json
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.