【发布时间】:2018-08-17 07:44:23
【问题描述】:
我正在尝试在本地生成my work in progress hugo website。它适用于 gitlab CI。
我安装了 docker 和 gitlab runner 服务。
然后使用指南here 我想我应该这样做gitlab-runner exec docker pages。
但这会导致:
[0;33mWARNING: Since GitLab Runner 10.0 this command is marked as DEPRECATED and will be removed in one of upcoming releases[0;m
[0KRunning with gitlab-runner 10.5.0 (80b03db9)
[0;m[0KUsing Docker executor with image rocker/tidyverse:latest ...
[0;m[0KPulling docker image rocker/tidyverse:latest ...
[0;m[0KUsing docker image sha256:f9a62417cb9b800a07695f86027801d8dfa34552c621738a80f5fed649c1bc80 for rocker/tidyverse:latest ...
[0;m[31;1mERROR: Job failed (system failure): Error response from daemon: invalid volume specification: '/host_mnt/c/builds/project-0/Users/jan/Desktop/gits/stanstrup-web:C:\Users\jan\Desktop\gits\stanstrup-web:ro'
[0;m[31;1mFATAL: Error response from daemon: invalid volume specification: '/host_mnt/c/builds/project-0/Users/jan/Desktop/gits/stanstrup-web:C:\Users\jan\Desktop\gits\stanstrup-web:ro'[0;m
我也尝试将其注册为其他指南显示,但我最终遇到了同样的问题。
其他人遇到了一些问题:
- https://gitlab.com/gitlab-org/gitlab-runner/issues/1775据说修好了...
-
https://github.com/moby/moby/issues/12751 建议可以设置
COMPOSE_CONVERT_WINDOWS_PATHS=1。我尝试将其设置为环境变量,但没有帮助。 - 更多关于如何正确转义路径的讨论:https://github.com/docker/compose/issues/3285
- 更多讨论建议
COMPOSE_CONVERT_WINDOWS_PATHS=1可行:https://github.com/docker/toolbox/issues/607
我应该在 .gitlab-ci.yml 中设置什么吗?应该在那里设置卷吗?在哪种情况下如何/在哪里?
.gitlab-ci.yml 说:
image: rocker/tidyverse:latest
before_script:
- apt-get update && apt-get -y install default-jdk pandoc r-base r-cran-rjava curl netcdf-bin libnetcdf-dev libxml2-dev libssl-dev
- R CMD javareconf
- Rscript .gitlab-ci.R
pages:
script:
- R -e "blogdown::build_site()"
artifacts:
paths:
- public
only:
- master
【问题讨论】:
-
您使用了
docker-compose.yml吗?如果是,那么请在您的问题中也发布它 -
如果我理解正确的话,等效的是 .gitlab-ci.yml。我已将其添加到 Q 中。
-
Gitlab runner 在这里执行 compose/container 并且 runner 没有处理路径。我没有窗口可以推荐您可以尝试和探索的可能步骤。但是使用
COMPOSE_CONVERT_WINDOWS_PATHS=1无法解决该问题,因为 runner 应该具有该变量。看看能不能在gitlab runner里面传进去,让它工作? -
根据您提供的链接(open 问题gitlab.com/gitlab-org/gitlab-runner/issues/1775),这是由于Windows 下路径的“冒号”分隔符而导致的已知错误;似乎已经设计了一个错误修复 (gitlab.com/gitlab-org/gitlab-runner/merge_requests/706),但尚未集成和发布...
-
我想知道为什么
before_script中的命令没有放在 Dockerfile 中(构建自己的镜像)。
标签: windows docker gitlab-ci-runner hugo blogdown