问题标签 [docker-in-docker]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
docker - 在 Alpine Docker 中安装 Docker
我有一个带有经典 Ubuntu 基础映像的 Dockerfile,我正在尝试减小大小。这就是我使用 Alpine 基地的原因。
在我的 Dockerfile 中,我必须安装 Docker,所以 Docker 中的 Docker。
这很好用,我可以docker version
在我的容器内运行,至少对于客户端而言。因为对于服务器,我有经典的 Docker 错误说:
我知道在 Ubuntu 中安装 Docker 后我必须运行
但是在阿尔卑斯山呢?我怎样才能避免这个错误?
PS:
我的第一个想法是通过绑定挂载重新使用 Docker 套接字/var/run/docker.sock:/var/run/docker.sock
,从而进一步减小图像的大小,因为我不必重新安装 Docker。
但是由于 Dockerfile 中不允许绑定挂载,您知道我的想法是否可行以及如何实现吗?我知道这在 Docker-compose 中是可能的,但我只能使用 Dockerfile。
谢谢
docker - 从 gitlab-ci 运行 docker 命令
我有这个 gitlab-ci 文件:
出于某种原因,docker 服务中的 docker 找不到 docker 的二进制文件(docker version命令,第 16 行):
我想知道是否有办法在 gitlab-ci 文件中执行此操作,因为我需要运行 docker 进行测试,是否有一个包含 maven 和 docker 二进制文件的图像,或者我是否必须创建我的自己的码头工人形象。
它必须全部在一个阶段,我不能将它分为两个阶段(或者至少我不知道如何在一个阶段在 maven 中编译并在另一个阶段使用 docker 映像运行测试)
谢谢!
gitlab - Gitlab CI, DIND
尝试使用 gitlab-ci 和 dind 执行作业时,我一直遇到基本的身份验证错误。我似乎无法弄清楚这一点。我可以看到第一次登录工作正常,但是当它尝试进行构建时,它失败了。
具有特权的 Gitlab-Runner
.gitlab-ci 稍后在构建完成后调用发布脚本。
Dockerfile:如果我使用 docker build 工作正常。
这是我在下面遇到的错误。
任何建议都会很棒。谢谢
docker - Docker COPY 在 gitlab 管道中新创建的文件失败
我的 Dockerfile 包含一个 COPY 命令,它复制刚刚在管道中创建的目录。
该 COPY 命令失败并出现以下错误:
但是,我知道该目录存在,因为在我构建图像之前,ls $CI_PROJECT_DIR/ui-dist
打印bundle.js
跑步者正在使用dind服务。我不确定这是否相关。
编辑:
好的,我尝试删除对 env 变量的引用。即我改变了管道
到
我已经将 docker 命令更新为
我仍然收到此错误消息:
docker - 为什么多阶段 docker build 卡在“COPY --from=builder ...”
上下文如下:
- 詹金斯
- Kubernetes 插件
- Docker-in-Docker/dind 容器
- 多阶段 Dockerfile
流程如下所示:
- 拉建设者
docker pull repo/image:builder
- 构建构建器
DOCKER_BUILDKIT=1 docker build . --build-arg BUILDKIT_INLINE_CACHE=1 --target builder --cache-from repo/image:builder --tag repo/image:builder
- 推送生成器
docker push repo/image:builder
- 拉图像
docker pull repo/image:tag
- 构建镜像
DOCKER_BUILDKIT=1 docker build . --build-arg BUILDKIT_INLINE_CACHE=1 --cache-from repo/image:builder --cache-from repo/image:tag --tag repo/image:tag
- 推送图片
docker push repo/image:tag
Dockerfile:
在COPY --from=builder --chown=nginx:nginx /app/frontend/built /project/web/public
docker build 永远卡住(30-40 分钟后我手动停止它)没有错误。
编辑:在第一次运行时,当注册表中还没有图像时,构建器缓存并按COPY --from=builder
预期工作。只有从第二个版本开始,它才会卡在COPY --from=builder
docker - 使用“Docker 外部的 Docker”设置时无法连接到 Jenkins 管道中的 Docker 容器
我正在基于这样的代理运行 Jenkins 工作:
注意: docker
并docker-compose
安装到我的代理容器中,以便能够在管道阶段内运行 docker 容器(“Docker 之外的 Docker”设置)
在管道中,我开始docker-compose
设置包含 2 个容器 - 服务器和 webapp
之后,我想向 发送一个 GET 请求localhost:8080
,这是应该从那里提供网络应用程序的地方。但我明白了
相同的 docker-compose 设置适用于我的开发人员。机器。端口转发设置正确(docker-compose
配置文件中启用了8080:8080端口转发)
我认为这与我在 Jenkins 中所做的“Docker 之外的 Docker”设置有些相关,也许端口 8080 实际上似乎正在侦听我的管道代理的主机,不确定……</p>
我会很高兴在这个问题上获得新的想法,我完全没有想到这个。
只是为了提供更多上下文:我想通过 docker-compose 运行 web-app + API 服务器,然后运行 Cypress(在 docker-compose 设置之外)通过 UI 进行 E2E 测试
docker - 在 kubernetes 从站中运行的无根目录,“docker run”失败
有没有人看到/解决了以下问题:
我有一个配置了无根dind的jenkins slave,所有docker命令都可以工作,除了docker run,详细信息和错误如下:
错误:
配置和版本:
uname -a Linux jnlp-5n7x4 4.4.0-1092-aws #103-Ubuntu SMP 2019 年 8 月 27 日星期二 10:21:48 UTC x86_64 Linux
码头工人信息:
提前致谢
docker - 为什么我无法从本地主机上的 Gitlab CI 连接到我的 docker-compose 服务
我在 Gitlab.com 的 CI runner(s) 上运行它。我的截断版本.gitlab-ci.yml
是
我的脚本/测试的截断版本是
我发现无论我的 ORIGIN 是localhost
,docker
等0.0.0.0
。我总是得到can't connect to remote host (0.0.0.0): Connection refused
我在 Gitlab 论坛和堆栈溢出上看到了很多答案,但没有一个能解决问题。发生了什么,我该如何解决/诊断问题?
docker - 转发主机 gitlab-ci for dind
问题:需要添加一些行(例如:124.343.23.34 gitlab.example.com)到 /etc/hosts 以用于 dind(docker in docker)。
gitlab-ci.yml 中的所有内容
当前脚本:
docker - Docker 入口点以交互模式与不同用户运行命令
我有一个安装了 docker 的自定义映像(docker-in-docker)。运行映像时,用户需要是$USERNAME
(而不是 root)。但是,docker 服务需要 root 才能启动。
让 docker 以非 root 身份运行似乎过于复杂。所以我尝试su
在入口点中使用,它可以工作,但它不是交互式的。
并且entrypoint.sh
是:
我将其运行为:
或者,如果您不想接受 pulumi 的话:
知道如何正确地将 tty 传递给 su 命令吗?