我试图使用gitlab-ci.yml文件在Gitlab中运行一个管道,并使用一个运行码头映像的运行程序,但是我得到了一个错误,因为运行程序找不到正确的路径到Dockerfile。
这是我的yml文件
image: docker:latest
services:
- docker:dind
stages:
- build
- test
- release
variables:
TEST_IMAGE: 193.206.43.98:5555/apfeed/apserver:$CI_COMMIT_REF_NAME
RELEASE_IMAGE: 193.206.43.98:5555/ap:latest
before_script:
- docker login -u "$CI_REGISTRY_USER" -p "$CI_REGISTRY_PASSWORD" "$CI_REGISTRY"
build:
stage: build
script:
- docker build --pull -t $TEST_IMAGE .
- docker push $TEST_IMAGE
test:
stage: test
services:
- mongo:bionic
script:
- docker pull $TEST_IMAGE
- docker run $TEST_IMAGE npm test
release:
stage: release
script:
- docker pull $TEST_IMAGE
- docker tag $TEST_IMAGE $RELEASE_IMAGE
- docker push $RELEASE_IMAGE
only:这就是我所犯的错误
$ docker build --pull -t $TEST_IMAGE .
unable to prepare context: unable to evaluate symlinks in Dockerfile path: lstat /home/gitlab-runner/builds/WsYiLtmC/0/al/apfeed/Dockerfile: no such file or directory
ERROR: Job failed: exit status 1我尝试了几种在行TEST IMAGE中编写路径的不同方法,但似乎没有一种方法有效。
发布于 2020-02-12 02:40:32
必须在项目根目录中有Dockerfile
或
如果相对路径存在于项目repo的子目录中,则可以将其传递给您的Dockerfile。
例如docker build --pull -t $TEST_IMAGE -f ./some-dir/Dockerfile .
一些dir ==文档文件所在的项目中的目录。
在执行每个作业之前,项目回购首先被克隆到CI_PROJECT_DIR中,CI_PROJECT_DIR是..gitlab ci.yml将存在的dir,作业脚本也是从该目录运行的。
https://stackoverflow.com/questions/60179087
复制相似问题