Tag:

当使用jenkins在GitLabregistry中推送图像时,错误失败:存储库名称无效

如果您手动使用以下命令: docker build -t company.domain:5000/root/dockerimages/image:tag . docker push company.domain:5000/root/dockerimages/image:tag 没关系。 在gitlab中,我们得到的图像。 但如果我从jenkins跑,我们得到一个错误: Invalid repository name (dockerimages / image), only [a-z0-9-_.] Are allowed

启动预构build的Docker镜像后运行命令的最佳实践

下载后运行代码并旋转预构build的Docker镜像最佳做法是什么? 例如,我使用Bitnamis RabbitMQ镜像,它可以运行一个运行RabbitMQ的容器(显然): https ://hub.docker.com/r/bitnami/rabbitmq 容器启动后,RabbitMQ正在运行,我想下载并启用一个额外的RabbitMQ插件。 作为Docker-Newbie,我遇到了两个问题: RabbitMQ需要一些时间来初始化,也许20-30秒 所述初始化完成后,需要启用插件 现在,我启动容器,等待30秒,然后在terminal上手动执行命令 docker exec -it wget -O /plugins/folder/newplugin.ez https://pluginlocation.com/newplugin.ez && rabbitmq-plugins enable newplugin` 这是有效的,但是有一个推荐的方法去做这一切吗? 我尝试使用我自己的Dockerfile的过程之上: FROM bitnami / rabbitmq:最新 运行wget -O /plugins/folder/newplugin.ez https://pluginlocation.com/newplugin.ez 运行rabbitmq-plugins启用newplugin 但在这一点上,RabbitMQ还没有初始化,所以使插件失败。 最好的

在Docker中构buildgradle项目

我有一个简单的Gradle项目,我想在Docker容器中构build 我有一个多阶段dockerbuild设。 第一阶段只是从github克隆项目。 第二阶段必须build立项目,以便在最后阶段运行。 但它没有进入 FROM gradle:4.2.1-jdk8-alpine WORKDIR /app COPY –from=0 /app/myProject /app RUN ./gradlew build –stacktrace 命令./gradlew build –stacktrace无法执行并失败,并显示以下错误: FAILURE: Build failed with an exception. * What went wrong: Could not update /app/.gradle/3.5-rc-2/file-changes/last-build.bin 和堆栈跟踪: org.gradle.api.UncheckedIOException: Could not update /app/.gradle/3.5-rc-2/file-changes/last-build.bin at org.gradle.api.internal.changedetection.state.FileTimeStampInspector.updateOnFinishBuild(FileTimeStampInspector.java:72) at org.gradle.api.internal.changedetection.state.BuildScopeFileTimeStampInspector.stop(BuildScopeFileTimeStampInspector.java:38) at org.gradle.internal.concurrent.CompositeStoppable.stop(CompositeStoppable.java:98) ….. Caused by: java.io.FileNotFoundException: /app/.gradle/3.5-rc-2/file-changes/last-build.bin (Permission denied) at java.io.FileOutputStream.open0(Native […]

无法访问在Docker容器内运行的Flask Web应用程序

我有以下Dockerfile ,我build立一个包含ElasticSearch , Kibana4和gunicorn # gunicorn-flask FROM devdb/kibana MAINTAINER KS <ks@gmail.com> ENV DEBIAN_FRONTEND noninteractive RUN apt-get update RUN apt-get install -y python python-pip python-virtualenv gunicorn RUN pip install -U pip # Setup flask application RUN mkdir -p /deploy/app COPY gunicorn_config.py /deploy/gunicorn_config.py COPY app /deploy/app COPY run_gunicorn /etc/service/gunicorn RUN pip install -r /deploy/app/requirements.txt WORKDIR /deploy/app EXPOSE […]

使用Dockerfile创buildOpenShift应用程序的问题(使用oc new-app)

我正尝试使用Dockerfile从Express Node js应用程序创buildOpenShift应用程序。 Web应用程序目前是使用快速生成器创build的框架,Dockerfile如下所示: FROM node:boron # Create app directory RUN mkdir -p /usr/src/app WORKDIR /usr/src/app # Install app dependencies COPY package.json /usr/src/app/ RUN npm install # Bundle app source COPY . /usr/src/app EXPOSE 3000 CMD [ "npm", "start" ] 我使用oc CLI运行OpenShift Online版本3。 但是当我运行: oc new-app c:\dev\myapp –strategy=docker 我收到以下错误信息: error: buildconfigs "node" is forbidden: build […]

在Jenkins中构buildDocker镜像(在Docker镜像中) – Cloud docker代理

我尝试学习如何configurationJenkins(在Docker容器中)来构build基于Dockerfile的Docker镜像。 起初我安装了DockerToolbox。 (OS Windows 7 Home) 然后我从Dockerhub中取出最新的Jenkins图像,运行容器并以pipe理员身份login。 基于本教程: https : //www.katacoda.com/courses/jenkins/build-docker-images我尝试configuration插件与Docker主机/守护进程通信。 (步骤3) 在(Jenkins /configuration/云部分)我必须填写名称和Docker-Url然后testing连接。 在Dockerterminal中,我inputdocker-machine config来获得Url。 不幸的是,在testing连接后,我得到以下exception shaded.org.apache.http.client.ClientProtocolException javax.ws.rs.ProcessingException: shaded.org.apache.http.client.ClientProtocolException at org.glassfish.jersey.apache.connector.ApacheConnector.apply(ApacheConnector.java:481) at org.glassfish.jersey.client.ClientRuntime.invoke(ClientRuntime.java:252) at org.glassfish.jersey.client.JerseyInvocation$2.call(JerseyInvocation.java:701) at org.glassfish.jersey.internal.Errors.process(Errors.java:315) at org.glassfish.jersey.internal.Errors.process(Errors.java:297) at org.glassfish.jersey.internal.Errors.process(Errors.java:228) at org.glassfish.jersey.process.internal.RequestScope.runInScope(RequestScope.java:444) at org.glassfish.jersey.client.JerseyInvocation.invoke(JerseyInvocation.java:697) at org.glassfish.jersey.client.JerseyInvocation$Builder.method(JerseyInvocation.java:420) at org.glassfish.jersey.client.JerseyInvocation$Builder.get(JerseyInvocation.java:316) at com.github.dockerjava.jaxrs.VersionCmdExec.execute(VersionCmdExec.java:26) at com.github.dockerjava.jaxrs.VersionCmdExec.execute(VersionCmdExec.java:13) at com.github.dockerjava.jaxrs.AbstrSyncDockerCmdExec.exec(AbstrSyncDockerCmdExec.java:23) at com.github.dockerjava.core.command.AbstrDockerCmd.exec(AbstrDockerCmd.java:35) at com.nirima.jenkins.plugins.docker.DockerCloud$DescriptorImpl.doTestConnection(DockerCloud.java:698) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) […]

Unix协议不支持 – Docker插件版本 – 0.16.2

当我尝试使用docker插件的最新版本将Jenkins连接到docker时,它不会连接! 错误 – “org.apache.http.conn.UnsupportedSchemeException:不支持unix协议(显示详细信息)”使用unix:///var/run/docker.sock命令(如其帮助标记中提供的 – 震惊地看到) ! 但是当我把版本降级到0.16.1时,并没有发生这种情况,并且连接上面的命令! 有关最新版本的帮助,我应该在Jenkinsconfiguration的docker云部分中input“Docker URL”。

如何通过Web钩子从Docker Hub与Jenkins进行通信?

似乎有很多的例子来轮询GitHub,但我怎么能轮询docker集线器和触发一个基于它的构build? 我在Docker Hub中有一个webhook,用于自动构build,但是我不知道如何在Jenkins中进行轮询。 似乎有这个Jenkins插件: https : //wiki.jenkins-ci.org/display/JENKINS/DockerHub+Plugin 但是,据我了解,自从Docker Hub发生API更改以来,该插件已被破坏。 更新: 看起来答案是使用“构build触发器”下的“触发器构build远程”选项,但由于匿名不具有构build权限而失败。 然后我切换到使用这个插件: https : //wiki.jenkins-ci.org/display/JENKINS/Build+Token+Root+Plugin 所以这个URL变成这样: https : //jenkinsserver.com/buildByToken/build?job=test&token=test 如果我通过浏览器(甚至隐身)而不是cURL POST到该URL,这是有效的。 我得到: $ curl -X POST https://jenkinsserver.com/buildByToken/build?job=test&token=test <html><head><meta http-equiv='refresh' content='1;url=/securityRealm/commenceLogin?from=%2FbuildByToken%2Fbuild%3Fjob%3Dtest'/><script>window.location.replace('/securityRealm/commenceLogin?from=%2FbuildByToken%2Fbuild%3Fjob%3Dtest');</script></head><body style='background-color:white; color:white;'> Authentication required <!– You are authenticated as: anonymous Groups that you are in: Permission you need to have (but didn't): hudson.model.Hudson.Read … which […]

OpenShift 3.1 – 防止Dockercachingcurl资源

我在我的Dockerfile中有这个curl命令: RUN curl -H 'Cache-Control: no-cache' -f ${NEXUS_URL}${ARTIFACT_PATH}-${ARTIFACT_VERSION}.war?nocache=true -o $JBOSS_HOME/standalone/deployments/ROOT.war 我第一次运行它,我可以看到下载信息。 但是之后,似乎是caching远程资源,因此,不再更新: Step 6 : RUN curl -H 'Cache-Control: no-cache' -f ${NEXUS_URL}${ARTIFACT_PATH}-${ARTIFACT_VERSION}.war?nocache=true -o $JBOSS_HOME/standalone/deployments/ROOT.war 30 —> Using cache 31 —> be50412bf6c3 我怎么能阻止呢?

如何同时运行2个SkyDns / Skydock环境?

参考: https : //github.com/crosbymichael/skydock https://github.com/crosbymichael/skydns 首先我解决了这两个例子。 docker run -d -p 8080:8080 -p 172.17.42.1:53:53/udp –name skydns crosbymichael/skydns -nameserver 8.8.8.8:53 -domain docker docker run -d -v /var/run/docker.sock:/docker.sock –name skydock crosbymichael/skydock -ttl 30 -environment dev -s /docker.sock -domain docker -name skydns 这个设置按预期工作。 现在我想创build另一个生产环境。 这一次,我只是按照如下的方式解雇了env制作的另一个skydock容器。 docker run -d -v /var/run/docker.sock:/docker.sock –name skydock-prod crosbymichael/skydock -ttl 30 -environment prod -s /docker.sock […]