#1467  Question for docker build
Closed
Alex opened 10 months ago
  1. 我现在项目是在通过angent 代理,方式在其他机器上打包生成镜像,我在job下增加了 run docker image的步骤,但是显示报错了(错误忘了复制截图了,有需要我可以补充),是不是他们说的 docker in docker 那个原因,所以我现在只能手动到对应的机器上执行docker run 命令

  2. 我有个机器上既安转了docker 环境,又想执行一些shell 命令,我看执行的时候报错了,大致是只能在裸机或者虚拟环境执行;这种需求有解吗

Robin Shen commented 10 months ago

麻烦附上错误信息。

Robin Shen changed title 10 months ago
Previous Value Current Value
哈喽,大佬请教两个问题
Question for docker build
Alex commented 10 months ago

image.png 你好,我这是通过执行 运行容器的报错,好像是参数问题,我是 直接把 -d --name okx-pub-ws --net=okx-network -p 8989:8989 --ip 172.18.0.2 --net-alias okx-pub-ip 这些参数放到那个 arguments里,是不是不对

image_2.png

Alex commented 10 months ago

@robin 第二个问题如下复现: image_3.png

image_5.png

image_4.png

Alex commented 10 months ago

@robin 哈喽,我补充了

Robin Shen commented 10 months ago

第一个问题:这是容器的 arguments (作为 entrypoint的参数),不是 options。options 应该在 executor 里面指定。

第二个问题:一个 job 里的 step 要么全部以容器方式运行,要么全部以shell方式运行。你这种情况,可以创建另一个 job,指定你需要的 shell executor,如果需要在 job 间传输文件,可以通过 job 的依赖来进行。具体查看文档里的教程。

Robin Shen commented 10 months ago

另外不能够指定 容器 以 daemon 方式运行,也不能指定运行的容器名称。如果要这样做的话,需要通过 shell executor 自己运行 docker 命令。

Robin Shen commented 10 months ago

因为 OneDev 的 step 设计为完成动作后需要退出。

Alex commented 10 months ago

image.png 你好,我这是通过执行 运行容器的报错,好像是参数问题,我是 直接把 -d --name okx-pub-ws --net=okx-network -p 8989:8989 --ip 172.18.0.2 --net-alias okx-pub-ip 这些参数放到那个 arguments里,是不是不对

image_2.png

这种方式我试过了,删除里面arguments参数直接运行,是可以成功的@robin

Robin Shen commented 10 months ago

所以这些选项不能放这里啊。

Alex commented 10 months ago

我这么搞了,用本机(裸机)通过shell 命令先登录到对应的服务器上,然后执行完命令,然后在docker build 最后在本机在登录上去执行shell 容器操作脚本

Alex commented 10 months ago

目前已经完全走通了

Robin Shen changed state to 'Closed' 10 months ago
Previous Value Current Value
Open
Closed
issue 1 of 1
Type
Question
Priority
Normal
Assignee
Issue Votes (0)
Watchers (4)
Reference
onedev/server#1467
Please wait...
Page is in error, reload to recover