docker - dockerfile 中语法错误未终止的带引号的字符串

标签 docker consul

我创建了一个如下所示的 Dockerfile:

FROM consul

COPY config-file.json /consul/config

ENTRYPOINT ["consul", "agent, "-config-file=/consul/config/config-file.json"]

配置(config-file.json)文件如下所示:

{
  "datacenter": "microservices",
  "data_dir": "/opt/consul",
  "log_level": "INFO",
  "disable_host_node_id" : true, 
  "server": true,
  "bootstrap_expect" : 2,
  "client_addr": "0.0.0.0",
  "ui": true,
  "bind_addr": "192.168.70.20"
}

然后运行容器并得到以下结果:

dockerizer@docker1:~/consul$ docker run --rm -ti --network=host servery
/bin/sh: syntax error: unterminated quoted string

我做错了什么?

最佳答案

您在 ENTRYPOINT 中的“代理”一词后面缺少引号。

ENTRYPOINT ["consul", "agent", "-config-file=/consul/config/config-file.json"]

缺少引号是导致未终止引号消息的原因,因此计算或执行的 ENTRYPOINT 显示为 consul agent "-config-file=/consul/config/config-file.json (这是缺少报价)

关于docker - dockerfile 中语法错误未终止的带引号的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46951090/

相关文章:

Angular12 Dockerization esbuild 问题

mongodb - Docker Compose MongoDB docker-entrypoint-initdb.d 不起作用

docker - 如何告诉我的脚本等待 consul 选举领导者,然后再尝试在启动时向其添加键/值对?

java - 在两个数据中心模式下测试 Consul

Consul 健康检查脚本未在 UI 上显示输出

sqlite - 符号链接(symbolic link)在 Docker 镜像中丢失

ssl - Docker 容器中的 curl 失败了 ssl 的 b/c

java - 尝试使用 docker 运行 jar 时出现 "Unable to access jarfile"

kubernetes - 如何在 envconsul 配置文件中传递环境变量?

Docker、Registrator 和 Consul 示例