可以通过docker build命令轻松构建docker镜像.
我想知道的是你在构建图像时可以给出的标志.例如:
$ docker build -t ouruser/sinatra:v2 .
Run Code Online (Sandbox Code Playgroud)
根据文档,t标志用于标记和命名目的.名称是':'之前的部分,标记是之后的部分.所以在我们的例子中,名称是ouruser/sinatra,标签是v2.
我以为这将是图像名称和标签.但显然,该名称实际上是一些存储库名称?为什么我认为它是?好吧,因为如果你在这个列表之后用命令列出图像:
docker images
Run Code Online (Sandbox Code Playgroud)
你会得到这样的列表:
REPOSITORY TAG IMAGE ID CREATED SIZE
ouruser/sinatra latest 5db5f8471261 11 hours ago 446.7 M
Run Code Online (Sandbox Code Playgroud)
砰! 重大震撼!您以为您正在创建一个带有名称的图像,而是指定了一些存储库!与此相关,我有一些问题:
谢谢您的帮助!
是否有一些轻量级方法我可以在容器内构建一个docker镜像,而无需有一个有效的docker机器.这是我正在尝试做的事情:
$ docker run -it --rm docker:latest
/ # mkdir test
/ # touch test/Dockerfile
/ # docker build test
Cannot connect to the Docker daemon. Is the docker daemon running on this host?
Run Code Online (Sandbox Code Playgroud)
假设我有一个有效的Dockerfile,是否有某种方法可以在像这样的容器中创建一个docker镜像?
有没有办法缓存 docker-compose 以便它不会一次又一次地构建?这是我的操作工作流文件:
name: Github Action
on:
push:
branches:
- staging
jobs:
test:
runs-on: ubuntu-18.04
steps:
- uses: actions/checkout@v1
- name: Bootstrap app on Ubuntu
uses: actions/setup-node@v1
with:
node-version: '12'
- name: Install global packages
run: npm install -g yarn prisma
- name: Install project deps
if: steps.cache-yarn.outputs.cache-hit != 'true'
run: yarn
- name: Build docker-compose
run: docker-compose -f docker-compose.test.prisma.yml up --build -d
Run Code Online (Sandbox Code Playgroud)
我想缓存 docker build 步骤。我试过使用if: steps.cache-docker.outputs.cache-hit != 'true' then only build 但没有用。
github docker-compose docker-build github-actions building-github-actions
如何在docker build命令期间将文件从docker容器复制到主机?
作为构建我的应用程序的docker镜像的一部分,我正在其中运行一些测试,并且我想将测试运行的输出复制到主机(这是一个持续集成服务器)来进行一些报告.
我想构建一个基于dockerage/apache-mellon 的 docker镜像,它的卷在/var/www. 我想在 docker 容器中构建我的 web 应用程序,当我在临时目录中构建它时/var/www,然后在我的 Dockerfile 中使用以下命令将文件复制到:
WORKDIR /tmp
COPY . /tmp
RUN ./node_modules/gulp/bin/gulp.js
RUN cp -R /tmp/dist/ /var/www
Run Code Online (Sandbox Code Playgroud)
docker 构建过程完成且没有任何错误,但文件不会被复制到/var/www. 有没有办法将文件复制到在构建过程中声明为 docker volume 的位置?
我使用Docker容器中的Jenkins.我想在Jenkins管道中构建docker镜像,但这个容器(Jenkins)中不存在docker.
由Docker Compose部署的Jenkins容器,yml文件:
version: "3.3"
services:
jenkins:
image: jenkins:alpine
ports:
- 8085:8080
volumes:
- ./FOR_JENKINS:/var/jenkins_home
Run Code Online (Sandbox Code Playgroud)
我们可以做些什么来在Jenkins管道中构建docker镜像?我们可以使用docker部署一些docker容器并使用一次构建docker镜像吗?或者是其他东西?你是怎么做的?
编辑:
谢谢@VonC,我检查了你的信息,但......"许可被拒绝"
Docker撰写文件:
version: "3.3"
services:
jenkins:
image: jenkins:alpine
ports:
- 8085:8080
volumes:
- ./FOR_JENKINS:/var/jenkins_home
# - /var/run/docker.sock:/var/run/docker.sock:rw
- /var/run:/var/run:rw
Run Code Online (Sandbox Code Playgroud)
Jenkinsfile:
pipeline {
agent any
stages {
stage('Build') {
steps {
echo "Compiling..."
sh "${tool name: 'sbt', type: 'org.jvnet.hudson.plugins.SbtPluginBuilder$SbtInstallation'}/bin/sbt compile"
}
}
/*stage('Unit Test') {
steps {
echo "Testing..."
sh "${tool name: 'sbt', type: 'org.jvnet.hudson.plugins.SbtPluginBuilder$SbtInstallation'}/bin/sbt coverage 'test-only * -- -F 4'"
sh "${tool name: …Run Code Online (Sandbox Code Playgroud) 尝试构建 docker 映像时出现以下错误。我的操作系统是企业环境中的 CentOS 7。
Sending build context to Docker daemon 1.22GB
Step 1/20 : FROM centos
Get https://registry-1.docker.io/v2/: net/http: request canceled while waiting for connection (Client.Timeout exceeded while awaiting headers).
Run Code Online (Sandbox Code Playgroud)
我遵循了我在网上得到的答案。(相关问题)。我以 24 票的方式跟随答案,因为它是为 CentOS 7 提供的
我在目录 /etc/sysconfig/ 中创建了一个名为 docker 的文件并添加了以下内容
HTTP_PROXY="http://proxy.example.com:80/"
HTTPS_PROXY="https://proxy.example.com:443/"
http_proxy="${HTTP_PROXY}"
https_proxy="${HTTPS_PROXY}"
Run Code Online (Sandbox Code Playgroud)
但我收到以下错误。
Sending build context to Docker daemon 1.22GB
Step 1/20 : FROM centos
Get https://registry-1.docker.io/v2/: http: error connecting to proxy https://proxy.example.com:443/: dial tcp: lookup proxy.example.com on 127.0.0.1:53: no such host
Run Code Online (Sandbox Code Playgroud)
我的 Docker …
我有一个 Dockerfile,其中一项操作是添加从存储(内部网络)存储库下载的 xml 文件。我们对我们的藏品使用自我证书。当它尝试执行 ADD 命令(导致 http GET)时,我收到此错误“Centos docker x509:由未知权威机构签名的证书” 有任何解决方案可以绕过吗?
我们可以使用 tarball 或 zip 存档构建一个 docker 镜像,其中包含 dockerfile 吗?我需要使用 docker api 从档案构建图像。
有没有任何参考或资源,我搜索了 3o 分钟但找不到任何东西。
请帮帮我!提前致谢!
在我使用docker 17.12.1-ce的Ubuntu 16.04上的 Dockerfile 中
ARG ver=latest
ARG pkg=master
Run Code Online (Sandbox Code Playgroud)
为了构建一个 docker 容器,我想调用docker build --build-arg ver=v1 .以设置一个特殊的包。
我的 Dockerfile 中的代码处理部分是
RUN if[ "x$ver" = "xv1" ] ; then pkg=v1.2.3 ; fi
RUN echo $pkg
Run Code Online (Sandbox Code Playgroud)
不幸的是,ARG pkg变量没有更新,并且 echo 语句始终显示其初始值。
我能做什么,更新if 语句中的构建变量pkg ?
docker-build ×10
docker ×9
dockerfile ×3
docker-image ×2
boot2docker ×1
containers ×1
docker-api ×1
github ×1
jenkins ×1