我正在尝试为我的代码创建一个 ci 管道。我已经在我的机器上注册了一个 docker executor 的跑步者。我注意到它正在使用 docker 容器内的 root 权限克隆存储库
$ ls -l
total 4
drwxrwxrwx 4 root root 4096 Jan 3 18:02 my-repo
因此,要在我的 repo 上构建内容,我必须使用 sudo 从我的 .gitlab-ci.yml 运行一些命令,而我不希望这样。
stages:
- build
default:
image: MyImage:latest
build:
stage: build
script:
# I don't want to use sudo here but as my repo is cloned with root privileges I must use sudo.
- sudo ./build -j 1
有没有办法告诉 gitlab-runner 以用户权限克隆存储库?
编辑
我的 dockerfile 使用用户创建图像
# Create a user of uid/gid 1000 to match user on most host machines
RUN apt-get update && apt-get -y install sudo && rm -rf /var/lib/apt/lists/*
RUN addgroup --gid 1000 myUser
RUN adduser --disabled-password --gecos "" --uid 1000 --gid 1000 myUser
RUN usermod -a -G sudo myUser
RUN echo '%sudo ALL=(ALL) NOPASSWD:ALL' >> /etc/sudoers
RUN usermod -a -G dialout myUser
USER myUser
RUN touch ~/.sudo_as_admin_successful
COPY --chown=1000:1000 export.sh .
RUN ./export.sh
WORKDIR /dev_folder/
CMD ["/bin/bash"]