我想要两个docker-compose文件,其中一个覆盖另一个.
(动机来自Docker Compose Docs)
用例来自buildbot环境.第一个docker-compose文件应该定义一个简单的服务.这是一项即将测试的服务.让我们来
version: '2'
services:
service-node:
build:
context: ./res
dockerfile: Dockerfile
image: my/server
env_file: .env
Run Code Online (Sandbox Code Playgroud)
第二个docker-compose文件(让它命名为docker-compose.test.yml)覆盖服务节点以添加buildbot worker功能,并创建第二个容器,即buildbot主节点,它将控制测试机器.让我们来
version: '2'
services:
service-node:
build:
context: ./res
dockerfile: buildbot.worker.Dockerfile
image: my/buildbot-worker
container_name: bb-worker
env_file: ./res/buildbot.worker.env
environment:
- BB_RES_DIR=/var/lib/buildbot
networks:
testlab:
aliases:
- bb-worker
volumes:
- ./vol/bldbot/worker:/home/bldbotworker
depends_on:
- bb-master
bb-master:
build:
context: ./res
dockerfile: buildbot.master.Dockerfile
image: my/buildbot-master
container_name: bb-master
env_file: ./res/buildbot.master.env
environment:
- BB_RES_DIR=/var/lib/buildbot
networks:
- testlab
expose:
- "9989"
volumes:
- ./vol/bldbot/master:/var/lib/buildbot
networks:
testlab:
driver: …Run Code Online (Sandbox Code Playgroud) 我正在尝试编写buildbot start在ENTRYPOINT/CMD Dockerfile指令中运行的最简单的docker buildbot主映像.
我试着用很多的组合dumb-init,gosu和exec,但没有成功.
情况如下:
当我尝试使用该命令运行deamonized buildroot时docker run -d -v $local/vol/bldbot/master:/var/lib/buildbot buildbot-master-test,容器启动成功,但它突然终止.日志如下所示:
[timestamp] [ - ]日志已打开.
[timestamp] [ - ] twistd 16.0.0(/ usr/bin/python 2.7.12)启动.
[timestamp] [ - ] reactor类:twisted.internet.epollreactor.EPollReactor.
[timestamp] [ - ]启动BuildMaster - buildbot.version:0.9.2
[timestamp] [ - ]从'/var/lib/buildbot/master.cfg'加载配置
[timestamp] [ - ]使用URL设置数据库' sqlite:/state.sqlite'
[timestamp] [ - ]将数据库日志模式设置为'wal'
[timestamp] [ - ]为master 1做家务c8aa8b0d5ca3:/ var/lib/buildbot
[timestamp] [ - ]添加1个新的sourcesources ,删除0
[timestamp] [ - ]添加1个新构建器,删除0
[timestamp] [ - ]添加2个新调度程序,删除0 …
我想知道我是否采取了任何可能导致代码故障的隐含假设?
我想避免使用 Import-Clixml cmdlet 是有原因的吗?因此,我开发了一种替代方案,即一系列命令,旨在从使用 Export-Clixml 创建的 CliXml 文件中提取用户名和密码。它现在可以工作,但我不确定分割解决方案是否可靠。
$credFileUriBld = [UriBuilder]::New('file','localhost',-1,"MyCredentials.xml"))
$credFile = [Xml.XMLDocument]::New()
$nsMgr4ps1xml = [Xml.XmlNamespaceManager]::New($credFile.NameTable)
$nsMgr4ps1xml.AddNamespace('ps1xml','http://schemas.microsoft.com/powershell/2004/04')
$credFile.Load($credFileUriBld.Path)
$netCredInfo = [System.Net.NetworkCredential]::New($credFile.SelectSingleNode('/ps1xml:Objs/ps1xml:Obj/ps1xml:Props/ps1xml:S[@N=''UserName'']/text()',$nsMgr4ps1xml).Get_Value(),
($credFile.SelectSingleNode('/ps1xml:Objs/ps1xml:Obj/ps1xml:Props/ps1xml:SS[@N=''Password'']/text()',$nsMgr4ps1xml).Get_Value().Split('00') |
ForEach-Object { if([String]::IsNullOrEmpty($_)) { } else { $_.Trim() } } |
ForEach-Object { [convert]::ToInt32($_,16) } |
ForEach-Object { [convert]::ToChar($_) } |
ForEach-Object -Begin { $ss=[SecureString]::New() } -Process {$ss.AppendChar($_)} -End { $ss }))
$netCredInfo.UserName
$netCredInfo.Password
Run Code Online (Sandbox Code Playgroud)
您能否看一下并建议是否存在任何使代码不可靠的假设?
powershell credentials securestring networkcredentials powershell-core