如何告诉docker文件在docker compose的运行命令中使用哪些DNS?
假设我有一个docker compose文件,如下所示:如何告诉docker文件在docker compose的运行命令中使用哪些DNS?,docker,dns,docker-compose,dockerfile,Docker,Dns,Docker Compose,Dockerfile,假设我有一个docker compose文件,如下所示: version: '2' services: randomDNStest: dns: - ###.###.###.### network_mode: "host" build: . FROM gitlab/gitlab-runner RUN ["gitlab-runner", "register", "--non-interactive", "--url", "THE INTERNAL GIT
version: '2'
services:
randomDNStest:
dns:
- ###.###.###.###
network_mode: "host"
build: .
FROM gitlab/gitlab-runner
RUN ["gitlab-runner", "register", "--non-interactive", "--url", "THE INTERNAL GIT LAB INSTANCE", "--registration-token", "MY TOKEN", "--executor", "docker", "--tag-list", "docker", "--description", "DESCRIPTION", "--docker-image", "docker:19.03.1", "--docker-dns", "###.###.###.###", "--docker-privileged", "--docker-tlsverify", "--docker-volumes", "/certs/client"]
还有这样一个Dockerfile:
version: '2'
services:
randomDNStest:
dns:
- ###.###.###.###
network_mode: "host"
build: .
FROM gitlab/gitlab-runner
RUN ["gitlab-runner", "register", "--non-interactive", "--url", "THE INTERNAL GIT LAB INSTANCE", "--registration-token", "MY TOKEN", "--executor", "docker", "--tag-list", "docker", "--description", "DESCRIPTION", "--docker-image", "docker:19.03.1", "--docker-dns", "###.###.###.###", "--docker-privileged", "--docker-tlsverify", "--docker-volumes", "/certs/client"]
如何指定Dockerfile在生成时使用的DNS服务器(在run命令中)
与我想要的相似但不正确的东西:
- 使用
。docker运行--dns
- 不适用于docker compose
- 修改主机上的DNS服务以侦听可从容器内访问的非本地主机地址,如所述并已实现。
- 可能有效,但需要在主机上进行设置
- 使用docker compose中的
部分,如上所示。dns
- 这在运行时工作,而不是构建时
- 使用curl的
参数和描述的参数--dns servers
- Curl命令格式:
Curl-X POST-F token=qytsh88wasa_LA6G2mf--dns服务器##########https://INTERNAL_GIT_LAB//api/v4/runners
- Curl的
命令必须按照所述和编译,但我无法获得正确的依赖项,这只能避免在我的特定用例中使用该问题--dns servers
- Curl命令格式:
- 使用
驱动程序,如上所述网络\u模式:“主机”
- 这不管用
Dockerfile
中运行此命令。这里的基本概念是,您可以docker一次构建
一个映像,然后docker运行该容器的多个副本,或者将映像推送到注册表并从其他系统运行。曾经在某个特定服务器上注册过的GitLab runner映像对于以后重新运行docker并不特别有用
此图像的默认设置表明它根本不打算用作基础图像。您只需将命令和其他设置放入docker compose.yml
文件中即可
version: '2'
services:
randomDNStest:
dns:
- ###.###.###.###
command: >-
register
--non-interactive
--url THE_INTERNAL_GITLAB_INSTANCE
...
(如果立即返回,重新运行docker compose up
将重复该命令。)执行此操作时,我会得到gitlab runner |正在注册runner。。。成功运行程序=
<代码>gitlab runner | runner已成功注册。可以随意启动它,但是如果它已经在运行,那么配置应该自动重新加载
gitlab runner已退出,代码为0
注册有效,但运行程序尚未启动。哦,我需要添加gitlab runner run
。。。dohWait,实际上我只能运行一个命令,所以我不能在registeringOk之后使用run
,看起来我可以为第二个命令添加另一个容器