-
Agent 是以docker方式启动的吗?如果是的话,pull一下用最新的image, docker pull 1dev/agent
-
在你能够运行 docker buildx build --push 的命令行窗口里,直接启动agent,然后运行下 job试试能不能成功。
-
是的,看看是不是不同用户账号环境的原因。
-
那你命令行直接运行
docker buildx build --push -t <some tag> <context directory>能成功吗? -
Previous Value Current Value 在 macos 上构建镜像提示 unknown flag: --push
Build image step fails with "unknown flag: --push" on Mac OSX
-
我这边可以正常工作,你检查下 executor advanced setting 里 docker 是否指向了其他版本。
-
步骤 2 会把代码挂载进容器,步骤 3 直接在裸机上执行。
-
你创建一个包含这个 Mac agent 的 remote shell executor,然后用这个 executor 执行一个 command step,里面 build image 如下看看能否成功:
docker buildx build --push -t <image tag> <context path> -f <your dockerfile> -
我添加了一个 remote shell executor ,然后直接 test ,输入pwd是可以的。但是用 docker buildx build --help 就提示:
/opt/onedev-agent/work/temp/onedev-build264561454212748435/job-commands.sh: line 1: docker: command not found Failed to run command: sh /opt/onedev-agent/work/temp/onedev-build264561454212748435/job-commands.sh, return code: 127 /opt/onedev-agent/work/temp/onedev-build264561454212748435/job-commands.sh: line 1: docker: command not found -
找不到 docker 命令,感觉是环境的问题。你直接在 executor 设置里指定 docker 路径看看。或者以控制台模式启动 agent
-
直接控制台启动 agent (
./agent.sh console) 环境变量有没有问题 (可以把 files_to_sources 暂时注释掉)?能不能运行上面的 docker 命令? -
连 sh 都找不到?那 command step 的 interpreter 里指定一个其他的 shell,比如 zsh
-
重新捋一下。 我把 files_to_sources 注释掉了。 然后在 shell executor 中执行 flutter -v 是报错的,但是执行 docker buildx build --help 是正常的 如果 files_to source="~/.bashrc" 被设置了 那么flutter -v是正常的,docker 指令是找不到的 默认的配置是
files_to_source=,即未被注释且没赋值,这时无论是flutter -v还是docker buildx build --help都是报错的以上,在remote docker executor中运行构建镜像并推送的行为,均提示
unknown flag: --push -
设置了 Docker Sock Path ,一样不行
Advanced setting 里的 docker executable path
-
再确认一下,从控制台以 ./agent.sh console的方式启动 (去除files_to_source,先别管 flutter),然后在 shell executor 里通过 command step 运行
docker buildx build --push -t <my_repo>/<image_name>:latest .还是不行吗?控制台启动的话 command step 会继承当前命令窗口的所有环境。
-
那这个时候能通过 remote docker executor 运行 build image step 吗?
-
在命令行下运行下面的命令能成功吗?
mkdir test export DOCKER_CONFIG=$(pwd)/test docker buildx build --push -t <my_repo>/<image_name>:latest . -
直接在终端下运行
-
Previous Value Current Value Open
Closed
-
无法重现。
-
Previous Value Current Value Closed
Open
-
mkdir test export DOCKER_CONFIG=$(pwd)/test docker buildx build --push -t <my_repo>/<image_name>:latest .试过这个吗?
-
升级到 9.4.4 看看行不行
-
OneDev 上的源码因为包含了企业版模块,就不公开了。但是其他部分一直会 push 到 github:
https://github.com/theonedev/onedev
也是可以直接编译运行的。
-
Previous Value Current Value Open
Closed
| Type |
Question
|
| Priority |
Normal
|
| Assignee | |
| Labels |
No labels
|
OneDev 是 9.3.2
运行 agent 的环境是 mac mini m2 的裸机。里面已经安装了 docker .
因为 .onedev-buildspec.yml 的构建步骤中有部分是需要 run in container 的,所以 Job Executor 是一个 Remote Docker .
这时候 agent 和 job exector 是不是因为不匹配导致 buildx 报错?