docker 中的 Gitlab CI。在阶段开始之前禁用清理目录
Gitlab CI in docker. Disable cleaning directory before stage starts
我决定根据这个计划构建我的管道:
- 构建阶段:运行 仅当分支是主分支或我的构建文件之一已被修改时。它继承
docker:latest
,并构建一个测试就绪容器(pytest,lint)并将其推送到本地注册表。
- 测试阶段:总是运行s,从上一阶段继承最新的或自己的分支容器。所有测试都运行在里面
- 投入生产:现在无所谓了。
问题 在 2 个阶段:
我 运行 ls -la
命令,但我没有看到我的 venv, node_modules
文件夹。我认为 GIT_CLEAN_FLAGS
可以解决我的问题。但是没有用。
如何重现问题:
构建图像
FROM python:3.7-slim
ARG CI_PROJECT_DIR
WORKDIR $CI_PROJECT_DIR
RUN pip install -r requirements.txt
build:
stage: build
tags:
- build
script:
- docker build --build-arg CI_PROJECT_DIR=$CI_PROJECT_DIR .
测试
lint:
variables:
GIT_CLEAN_FLAGS: none
stage: test
tags:
- test
script:
- pwd
- ls -lah
您不需要使用 CI_PROJECT_DIR
。将您的代码保存在另一个目录中:
/my-app
例如。
在你的第二阶段使用 cd /my-app
.
第二阶段的代码示例:
test:
stage: test
tags:
- test
before_script:
- cd /my-app
script:
- pwd
- ls -lah
我决定根据这个计划构建我的管道:
- 构建阶段:运行 仅当分支是主分支或我的构建文件之一已被修改时。它继承
docker:latest
,并构建一个测试就绪容器(pytest,lint)并将其推送到本地注册表。 - 测试阶段:总是运行s,从上一阶段继承最新的或自己的分支容器。所有测试都运行在里面
- 投入生产:现在无所谓了。
问题 在 2 个阶段:
我 运行 ls -la
命令,但我没有看到我的 venv, node_modules
文件夹。我认为 GIT_CLEAN_FLAGS
可以解决我的问题。但是没有用。
如何重现问题:
构建图像
FROM python:3.7-slim
ARG CI_PROJECT_DIR
WORKDIR $CI_PROJECT_DIR
RUN pip install -r requirements.txt
build:
stage: build
tags:
- build
script:
- docker build --build-arg CI_PROJECT_DIR=$CI_PROJECT_DIR .
测试
lint:
variables:
GIT_CLEAN_FLAGS: none
stage: test
tags:
- test
script:
- pwd
- ls -lah
您不需要使用 CI_PROJECT_DIR
。将您的代码保存在另一个目录中:
/my-app
例如。
在你的第二阶段使用 cd /my-app
.
第二阶段的代码示例:
test:
stage: test
tags:
- test
before_script:
- cd /my-app
script:
- pwd
- ls -lah