bad*_*ode 5 sudo docker gitlab-ci
我正在使用 gitlab-ci 来完成我的简单项目。
一切正常,我的跑步者正在我的本地计算机(ubuntu18-04)上运行,我用简单的 .gitlab-ci.yml 对其进行了测试。
现在我尝试使用以下 yml:
image: ubuntu:18.04
build-job:
stage: build
script:
- echo "Hello, $GITLAB_USER_LOGIN!"
- sudo apt-get update
Run Code Online (Sandbox Code Playgroud)
但我收到以下错误:
/bin/bash: line 110: sudo: command not found
Run Code Online (Sandbox Code Playgroud)
我该如何使用 sudo?
您不必担心更新 Gitlab CI 管道作业中使用的 Ubuntu 映像,因为作业完成时 docker 容器会被销毁。此外,docker 镜像经常更新。如果你查看ubuntu:18.04docker hub 页面,它是 2 天前刚刚更新的:https://hub.docker.com/_/ubuntu? tab=tags&page=1&ordering=last_updated
由于您正在此处进行更新,我假设接下来您可能想要安装一些软件包。可以这样做,但不建议这样做,因为您运行的每个管道都必须安装这些软件包,这确实会减慢它们的速度。相反,您可以基于父映像创建自定义 docker 映像并以这种方式对其进行自定义。然后,您可以将该 docker 镜像上传到 docker hub、Gitlab 的注册表(如果使用自托管的 Gitlab,则必须由管理员启用),或者在所有 gitlab-runner 上构建。
这是一个愚蠢的例子:
# .../custom_ubuntu:18.04/Dockerfile
FROM ubuntu:18.04
RUN apt-get install git
Run Code Online (Sandbox Code Playgroud)
接下来,您可以构建图像:docker build /path/to/directory/that/has/dockerfile,对其进行标记,以便您可以在管道配置文件中引用它:docker tag aaaaafffff59 my_org/custom_ubuntu:18.04。然后,如果需要,您可以上传标记的图像docker push my_org/custom_ubuntu:18.04。
在您的.gitlab-ci.yml文件中,引用此自定义 Ubuntu 映像:
image: my_org/custom_ubuntu:18.04
build-job:
stage: build
script:
- echo "Hello, $GITLAB_USER_LOGIN!"
- git --version # ensures the package you need is available
Run Code Online (Sandbox Code Playgroud)
您可以在此处阅读有关在 Gitlab CI 中使用自定义图像的更多信息:https ://docs.gitlab.com/charts/advanced/custom-images/
| 归档时间: |
|
| 查看次数: |
10009 次 |
| 最近记录: |