1

我使用 nano server 作为基础镜像创建了一个 Windows docker 镜像,并在其上安装了 dot net core SDK,因为 nano server 是一个轻量级操作系统。我还下载并设置了 Java 的路径,因为它是 Bamboo 设置所必需的。此映像的目标是启动一个 nano 服务器容器,该容器可以启动一个竹远程代理并在此远程代理上构建项目。我创建的图像能够设置 java 路径并下载竹代理 jar 文件。但是在运行竹代理 jar 时,它说代理进程已启动,但底层代理立即终止。

dockerfile 看起来像这样 -

FROM microsoft/nanoserver:10.0.14393.1770
SHELL ["powershell", "-Command", "$ErrorActionPreference = 'Stop'; 
$ProgressPreference = 'SilentlyContinue';"]

# Install .NET Core SDK
ENV DOTNET_SDK_VERSION 2.0.2
ENV DOTNET_SDK_DOWNLOAD_URL https://dotnetcli.blob.core.windows.net/dotnet/Sdk/$DOTNET_SDK_VERSION/dotnet-sdk-$DOTNET_SDK_VERSION-win-x64.zip
ENV DOTNET_SDK_DOWNLOAD_SHA 4864A36D3BE9D460A17D0EBE9D03B17CE224EC18880BCDBC087889F32DDFC2CF3753A1AB7D0414B1E73E863E0D10F5A8381E80EFFC7F7C0A50600DD82A1F0048
RUN Invoke-WebRequest $Env:DOTNET_SDK_DOWNLOAD_URL -OutFile dotnet.zip; `
if ((Get-FileHash dotnet.zip -Algorithm sha512).Hash -ne $Env:DOTNET_SDK_DOWNLOAD_SHA) { `
    Write-Host 'CHECKSUM VERIFICATION FAILED!'; `
    exit 1; `
}; `
`
Expand-Archive dotnet.zip -DestinationPath $Env:ProgramFiles\dotnet; `
Remove-Item -Force dotnet.zip

RUN setx /M PATH $($Env:PATH + ';' + $Env:ProgramFiles + '\dotnet' + ';' + $Env:ProgramFiles + '\jdk\java-1.8.0-openjdk-1.8.0.121-1.b13.ojdkbuild.windows.x86_64\bin')

# Trigger the population of the local package cache
ENV NUGET_XMLDOC_MODE skip
RUN New-Item -Type Directory warmup; `
cd warmup; `
dotnet new; `
cd ..; `
Remove-Item -Force -Recurse warmup

RUN Invoke-WebRequest https://github.com/ojdkbuild/ojdkbuild/releases/download/1.8.0.121-1/java-1.8.0-openjdk-1.8.0.121-1.b13.ojdkbuild.windows.x86_64.zip -OutFile jdk.zip
RUN Expand-Archive jdk.zip -DestinationPath $Env:ProgramFiles\jdk
#RUN Move-Item $Env:Program Files\jdk\java* $Env:Program Files\jdk

RUN Invoke-WebRequest http://10.16.86.137:8085/agentServer/agentInstaller/atlassian-bamboo-agent-installer-6.1.1.jar -OutFile bamboo-agent.jar


RUN echo 'java -jar C:\bamboo-agent.jar http://10.16.86.137:8085/agentServer/' >> C:\startup.ps1

CMD powershell ./startup.ps1

我尝试使用nanoserver/java作为基本映像并得到相同的结果。

控制台日志如下所示

PS C:\> java -jar bamboo-agent.jar http://10.16.86.137:8085/agentServer/
Reinstalling wrapper binaries, reason: agent either not installed or outdated
Unzipping /classpath.zip to C:\Users\ContainerAdministrator\bamboo-agent home\classpath
Extracting 'MANIFEST.DAT'
Extracting 'atlassian-extras-decoder-api-3.3.0.jar'
Extracting 'atlassian-cache-ehcache-2.11.3.jar'
Extracting 'atlassian-annotations-1.1.0.jar'
Extracting 'truezip-kernel-7.6.jar'
Extracting 'activemq-client-5.14.5.jar'
Extracting 'atlassian-bamboo-core-6.2.1.jar'
Extracting 'svnkit-1.8.15.jar'
Extracting 'maven-model-3.0.5.jar'
Extracting 'commons-codec-1.8.jar'
Extracting 'commons-pool2-2.4.2.jar'
Extracting 'beehive-api-0.2.1.jar'
Extracting 'api-1.6.0-atlassian-8.jar'
Extracting 'geronimo-jms_1.1_spec-1.1.1.jar'
Extracting 'atlassian-bamboo-plugin-dotnet-6.1.1.jar'
Extracting 'atlassian-bandana-3.1.jar'
Extracting 'activemq-pool-5.14.5.jar'
Extracting 'maven-settings-builder-3.0.5.jar'
Extracting 'atlassian-plugins-webresource-3.3.7.jar'
Extracting 'applinks-api-5.4.1.jar'
Extracting 'xpp3_min-1.1.4c.jar'
Extracting 'atlassian-plugins-spring-4.1.0.jar'
Extracting 'activemq-broker-5.14.5.jar'
Extracting 'atlassian-plugins-webresource-api-3.3.7.jar'
Extracting 'atlassian-bamboo-agent-elastic-shared-6.2.1.jar'
Extracting 'atlassian-bamboo-agent-elastic-6.2.1.jar'
Extracting 'atlassian-bamboo-utils-6.2.1.jar'
Extracting 'atlassian-localhost-1.1.0.jar'
Extracting 'atlassian-secure-random-3.2.4.jar'
Extracting 'atlassian-extras-common-3.3.0.jar'
Extracting 'atlassian-cookie-tools-3.2.3.jar'
Extracting 'spring-messaging-4.3.6.RELEASE.jar'
Extracting 'jta-1.0.1B.jar'
Extracting 'maven-embedder-3.0.5.jar'
Extracting 'atlassian-user-core-5.4.6.jar'
Extracting 'atlassian-velocity-0.5.jar'
Extracting 'stringtemplate-3.2.1.jar'
Extracting 'bcprov-jdk15on-1.54.jar'
Extracting 'maven-repository-metadata-3.0.5.jar'
Extracting 'atlassian-xwork-12-2.5.10-struts-2.jar'
Extracting 'plexus-classworlds-2.4.jar'
Extracting 'sal-spring-3.0.8.jar'
Extracting 'atlassian-bamboo-api-6.2.1.jar'
Extracting 'atlassian-scheduler-quartz2-1.6.0.jar'
Extracting 'bamboo-specs-api-6.2.1.jar'
Extracting 'atlassian-mail-2.7.19.jar'
Extracting 'spring-beans-4.3.6.RELEASE.jar'
Extracting 'atlassian-bamboo-maven-embedder-6.2.1.jar'
Extracting 'ion-java-1.0.2.jar'
Extracting 'maven-settings-3.0.5.jar'
Extracting 'atlassian-bamboo-plugin-scripttask-6.2.1.jar'
Extracting 'maven-core-3.0.5.jar'
Extracting 'atlassian-secure-xml-3.2.4.jar'
Extracting 'oro-2.0.8.jar'
Extracting 'applinks-host-5.4.1.jar'
Extracting 'commons-lang-2.6.jar'
Extracting 'bamboo-additional-config.jar'
Extracting 'maven-compat-3.0.5.jar'
Extracting 'javax.mail-1.5.2.jar'
Extracting 'atlassian-bucket-5.1.3.jar'
Extracting 'soy-template-renderer-plugin-api-4.0.4.jar'
Extracting 'freemarker-2.3.24-atlassian-2.jar'
Extracting 'atlassian-plugins-servlet-4.1.0.jar'
Extracting 'jna-4.1.0.jar'
Extracting 'spring-core-4.3.6.RELEASE.jar'
 Extracting 'atlassian-bamboo-plugin-triggercondition-6.2.1.jar'
Extracting 'jsch.agentproxy.pageant-0.0.7.jar'
Extracting 'jackson-annotations-2.7.9.jar'
Extracting 'jboss-logging-3.3.0.Final.jar'
Extracting 'aws-java-sdk-s3-1.11.164.jar'
Extracting 'spring-context-4.3.6.RELEASE.jar'
Extracting 'xercesImpl-2.11.0.jar'
Extracting 'spring-orm-4.3.6.RELEASE.jar'
Extracting 'package-scanner-0.9.5.jar'
Extracting 'atlassian-util-concurrent-4.0.0.jar'
Extracting 'quartz-2.2.3.jar'
Extracting 'aether-impl-1.13.1.jar'
Extracting 'jansi-1.11.jar'
Extracting 'security-classlist-api-0.3.21.jar'
Extracting 'platform-3.4.0.jar'
Extracting 'atlassian-cache-api-2.11.3.jar'
Extracting 'commons-digester-1.8.jar'
Extracting 'sequence-library-1.0.3.jar'
Extracting 'javacvs-atlassian-20080407.jar'
Extracting 'aspectjrt-1.8.9.jar'
Extracting 'atlassian-instrumentation-core-2.2.1.jar'
Extracting 'atlassian-scheduler-core-1.6.0.jar'
Extracting 'commons-validator-1.5.1.jar'
Extracting 'atlassian-plugins-osgi-events-4.1.0.jar'
Extracting 'jaxen-1.1.6.jar'
Extracting 'atlassian-bamboo-plugin-stashcommitviewer-6.2.1.jar'
Extracting 'atlassian-bamboo-agent-elastic-server-6.2.1.jar'
Extracting 'c3p0-0.9.5.2.jar'
Extracting 'atlassian-ip-3.1.jar'
Extracting 'slf4j-api-1.7.10.jar'
Extracting 'atlassian-aws-1.0.149.jar'
Extracting 'jsch.agentproxy.core-0.0.7.jar'
Extracting 'staxmate-2.0.0.jar'
Extracting 'commons-beanutils-1.9.2.jar'
Extracting 'activemq-jms-pool-5.14.5.jar'
Extracting 'aws-java-sdk-kms-1.11.164.jar'
Extracting 'p4java-0.7.5-atlassian-13.jar'
Extracting 'atlassian-johnson-1.0.jar'
Extracting 'mchange-commons-java-0.2.11.jar'
Extracting 'atlassian-tenancy-api-2.0.0.jar'
Extracting 'aws-java-sdk-codedeploy-1.11.164.jar'
Extracting 'atlassian-bamboo-plugin-ant-6.2.1.jar'
Extracting 'bamboo-specs-6.2.1.jar'
Extracting 'xmlpull-1.1.3.1.jar'
Extracting 'minlog-1.3.0.jar'
Extracting 'ehcache-2.7.5.jar'
Extracting 'acegi-security-1.0.4.jar'
Extracting 'activeobjects-spi-1.2.3.jar'
Extracting 'jaxb-api-2.1.jar'
Extracting 'osuser-1.0-20060106.jar'
Extracting 'geronimo-j2ee-connector_1.5_spec-2.0.0.jar'
Extracting 'atlassian-extras-core-3.3.0.jar'
Extracting 'atlassian-extras-legacy-3.3.0.jar'
Extracting 'jackson-dataformat-cbor-2.7.9.jar'
Extracting 'atlassian-plugins-osgi-4.1.0.jar'
Extracting 'geronimo-transaction-3.1.jar'
Extracting 'jackson-core-2.7.9.jar'
Extracting 'maven-artifact-3.0.5.jar'
Extracting 'truezip-driver-zip-7.6.jar'
Extracting 'truezip-swing-7.6.jar'
Extracting 'joda-time-2.8.2.jar'
Extracting 'httpcore-4.4.6.jar'
Extracting 'sqljet-1.1.10.jar'
Extracting 'jandex-2.0.3.Final.jar'
Extracting 'applinks-spi-5.4.1.jar'
Extracting 'jackson-core-asl-1.9.1.jar'
Extracting 'hibernate-jpa-2.1-api-1.0.0.Final.jar'
Extracting 'atlassian-bamboo-plugin-php-6.2.1.jar'
Extracting 'lucene-analyzers-common-4.6.0.jar'
Extracting 'ant-1.8.4.jar'
Extracting 'activemq-protobuf-1.1.jar'
Extracting 'aopalliance-1.0.jar'
Extracting 'hibernate-ehcache-5.2.10.Final.jar'
Extracting 'spring-context-support-4.3.6.RELEASE.jar'
Extracting 'atlassian-plugins-webfragment-4.0.0.jar'
Extracting 'atlassian-bamboo-web-6.2.1.jar'
Extracting 'truezip-file-7.6.jar'
Extracting 'antlr-2.7.7.jar'
Extracting 'trilead-ssh2-1.0.0-build221.jar'
Extracting 'asm-5.0.3.jar'
Extracting 'atlassian-bamboo-deployments-6.2.1.jar'
Extracting 'slf4j-log4j12-1.7.10.jar'
Extracting 'commons-collections4-4.1.jar'
Extracting 'wagon-http-shared4-2.4.jar'
Extracting 'commons-httpclient-3.1-atlassian-2.jar'
Extracting 'lucene-core-4.6.0.jar'
Extracting 'geronimo-j2ee-connector_1.6_spec-1.0.jar'
Extracting 'atlassian-extras-api-3.3.0.jar'
Extracting 'maven-plugin-api-3.0.5.jar'
Extracting 'aether-spi-1.13.1.jar'
Extracting 'atlassian-plugins-api-4.1.0.jar'
Extracting 'fugue-2.2.1.jar'
Extracting 'atlassian-plugins-webresource-common-4.1.0.jar'
Extracting 'webwork-compat-1.32.jar'
Extracting 'jxmpp-util-cache-0.4.2.jar'
Extracting 'maven-model-builder-3.0.5.jar'
Extracting 'atlassian-html-encoder-1.5.jar'
Extracting 'atlassian-bamboo-plugin-labeller-6.2.1.jar'
Extracting 'atlassian-plugins-webfragment-api-4.0.0.jar'
Extracting 'hawtbuf-1.11.jar'
Extracting 'atlassian-processutils-1.7.9.jar'
Extracting 'jul-to-slf4j-1.7.10.jar'
Extracting 'jdom-1.0.jar'
Extracting 'sourcemap-1.7.2.jar'
Extracting 'jsr305-1.1.jar'
Extracting 'commons-io-2.4.jar'
Extracting 'ant-launcher-1.8.4.jar'
Extracting 'objenesis-2.4.jar'
Extracting 'atlassian-bamboo-plugin-fisheyecommitviewer-6.2.1.jar'
Installing file: C:\Users\ContainerAdministrator\bamboo-agent-home\conf\wrapper.conf
Installing file: /generic/lib/wrapper.jar to: C:\Users\ContainerAdministrator\bamboo-agent-home\lib\wrapper.jar
Installing file: /generic/lib/bamboo-agent-bootstrap-jar-with-dependencies.jar to: C:\Users\ContainerAdministrator\bamboo-agent-home\lib\bamboo-agent-bootstrap.jar
Installing file: /generic/bin/BambooAgent.bat to:C:\Users\ContainerAdministrator\bamboo-agent-home\bin\BambooAgent.bat
Installing file: /generic/bin/InstallBambooAgent-NT.bat to: C:\Users\ContainerAdministrator\bamboo-agent-home\bin\InstallBambooAgent-NT.bat
Installing file: /generic/bin/StartBambooAgent-NT.bat to: C:\Users\ContainerAdministrator\bamboo-agent-home\bin\StartBambooAgent-NT.bat
Installing file: /generic/bin/StopBambooAgent-NT.bat to:C:\Users\ContainerAdministrator\bamboo-agent-home\bin\StopBambooAgent-NT.bat
Installing file: /generic/bin/UninstallBambooAgent-NT.bat to:C:\Users\ContainerAdministrator\bamboo-agent-home\bin\UninstallBambooAgent-NT.bat
Installing file: /arch/windows/64/wrapper.exe to:C:\Users\ContainerAdministrator\bamboo-agent-home\bin\wrapper.exe    
Installing file: /arch/windows/64/wrapper.dll to:C:\Users\ContainerAdministrator\bamboo-agent-home\lib\wrapper.dll
LOCALAPPDATA: C:\Users\ContainerAdministrator\AppData\Local
PROCESSOR_LEVEL: 6
USERDOMAIN: User Manager
ALLUSERSPROFILE: C:\ProgramData
PROCESSOR_ARCHITECTURE: AMD64
SystemDrive: C:
DOTNET_SDK_VERSION: 2.0.2
APPDATA: C:\Users\ContainerAdministrator\AppData\Roaming
BAMBOO_SERVER: http://10.16.86.137:8085/agentServer/
USERNAME: ContainerAdministrator
ProgramFiles(x86): C:\Program Files (x86)
CommonProgramFiles: C:\Program Files\Common Files
NUGET_XMLDOC_MODE: skip
Path:C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\
System32\WindowsPowerShell\v1.0\;C:\Users\ContainerAdministrator\AppData\
Local\Microsoft\WindowsApps;C:\Program Files\dotnet;C:\Program Files\jdk\
java-1.8.0-openjdk-1.8.0.121-1.b13.ojdkbuild.windows.x86_64\bin;
PATHEXT: .COM;.EXE;.BAT;.CMD
OS: Windows_NT
COMPUTERNAME: BB7F1D575456
BAMBOO_AGENT_HOME: "C:\Users\ContainerAdministrator\bamboo-agent-home"
PROCESSOR_REVISION: 3c03
CommonProgramW6432: C:\Program Files\Common Files
NUGET_XMLDOC_MODE: skip 
Path:C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\
System32\WindowsPowerShell\v1.0\;C:\Users\ContainerAdministrator\AppData\
Local\Microsoft\WindowsApps;C:\Program Files\dotnet;C:\Program 
Files\jdk\java-1.8.0-openjdk-1.8.0.121-1.b13.ojdkbuild.windows.x86_64\bin;
PATHEXT: .COM;.EXE;.BAT;.CMD
OS: Windows_NT
COMPUTERNAME: BB7F1D575456
BAMBOO_AGENT_HOME: "C:\Users\ContainerAdministrator\bamboo-agent-home"
PROCESSOR_REVISION: 3c03
CommonProgramW6432: C:\Program Files\Common Files
ComSpec: C:\Windows\system32\cmd.exe
ProgramData: C:\ProgramData
ProgramW6432: C:\Program Files
IGNORE_SERVER_CERT_NAME: false
SystemRoot: C:\Windows
TEMP: C:\Users\ContainerAdministrator\AppData\Local\Temp
PROCESSOR_IDENTIFIER: Intel64 Family 6 Model 60 Stepping 3, GenuineIntel
USERPROFILE: C:\Users\ContainerAdministrator
TMP: C:\Users\ContainerAdministrator\AppData\Local\Temp
DOTNET_SDK_DOWNLOAD_URL:https://dotnetcli.blob.core.windows.net/dotnet/Sdk/
2.0.2/dotnet-sdk-2.0.2-win-x64.zip
CommonProgramFiles(x86): C:\Program Files (x86)\Common Files
ProgramFiles: C:\Program Files
PUBLIC: C:\Users\Public
BAMBOO_SECURITY_TOKEN:
DOTNET_SDK_DOWNLOAD_SHA: 864A36D3BE9D460A17D0EBE9D03B17CE224EC18880BCDBC087889F32DDFC2CF3753A1AB7D0414B1E3E863E0D10F5A8381E80EFFC7F7C0A50600DD82A1F0048
NUMBER_OF_PROCESSORS: 4
windir: C:\Windows
Running [C:\Users\ContainerAdministrator\bamboo-agent-home\bin\BambooAgent.bat]
Agent process started, shutdown hook registered, proceeding with log pump...
Waiting for the agent process to finish...
Underlying agent process has terminated cleanly,
Bamboo Agent Installer is shutting down, the underlying agent process has already been shut down.

谢谢!

4

1 回答 1

0

该命令java -jar bamboo-agent.jar http://10.16.86.137:8085/agentServer/在 RUN 命令中执行,该命令将在您构建映像时执行。

构建镜像时,RUN 等命令会执行并创建层,然后终止。这就是镜像构建,创建一堆 FS 层,这些层将在以后运行容器时使用。如果您需要启动代理,则需要在运行容器时启动它,这在 CMD 命令中完成。重构 Dockerfile 的一种天真的方法是将最后一个 RUN 和 CMD 组合起来:

CMD echo 'java -jar C:\bamboo-agent.jar http://10.16.86.137:8085/agentServer/' >> C:\startup.ps1 && powershell ./startup.ps1
于 2017-11-21T07:57:33.227 回答