현상: clone한 repo 코드 수정한 후 push할 때 발생한 에러
원인: repo를 clone했을 때의 user(mlops)와 gitea가 생성된 pvc에 대한 user(ubuntu)가 다름

해결: pvc에 mlops user에 대한 권한 추가
sudo setfacl -m u:mlops:rwx /data/local-path-provisioner/pvc-9df8aafc-bacc-4d8e-96e7-f0c80dbd7ece_katech_gitea-shared-storage
sudo setfacl -d -m u:mlops:rwx /data/local-path-provisioner/pvc-9df8aafc-bacc-4d8e-96e7-f0c80dbd7ece_katech_gitea-shared-storage
에러
현상 1: docker daemon을 마운트 하지 않고 rootless로 구동되게 하는 yaml 파일 참고해서 runner를 생성했는데, docker 사용시 에러 발생
해결 1: docker.sock이 있는 image를 사용하여 unix:///run/user/1000/docker.sock 를 docker socket으로 설정함 → 참고
- name: GITEA_RUNNER_LABELS
value: ubuntu-latest:docker://catthehacker/ubuntu:runner-22.04,ubuntu-22.04:docker://catthehacker/ubuntu:runner-22.04,ubuntu-20.04:docker://catthehacker/ubuntu:runner-20.04
현상 2: 해결 1로 적용했더니 gitea/act_runner:nightly-dind-rootless image가 변경되었는지 pod에서 sh: /usr/bin/supervisord: not found 이런 에러가 뜨고 있음
...
container {
name = "runner"
image = "gitea/act_runner:nightly-dind-rootless"
image_pull_policy = "Always"
command = ["sh", "-c", "(sleep 10 && chmod a+rwx /run/user/1000/docker.sock) & /usr/bin/supervisord -c /etc/supervisord.conf"]
...
해결 2: Dockerfile을 커스터마이징해서 빌드한 후 command는 제거하고 배포 → 참고
[Dockerfile]
FROM gitea/act_runner:nightly-dind-rootless
USER root
# Create a symlink, as the runner expects the socket to be in `/var/run/docker.sock`.
RUN ln -s /var/run/user/1000/docker.sock /var/run/docker.sock
원인: runner pod의 docker host는 아래와 같이 지정했는데, github action에서는 default로 unix:///var/run/docker.sock 파일을 보고 있음.
resource "kubernetes_deployment" "katech_act_runner" {
...
env {
name = "DOCKER_HOST"
value = "tcp://localhost:2376"
}
github action step에 환경 변수로 세팅해줘도 다른 에러가 발생함
- name: Build and Push Docker Images
...
env:
DOCKER_HOST: tcp://localhost:2376
ERROR: Cannot connect to the Docker daemon at tcp://localhost:2376. Is the docker daemon running?