레이블이 debian인 게시물을 표시합니다. 모든 게시물 표시
레이블이 debian인 게시물을 표시합니다. 모든 게시물 표시

golang pthread_create failed

# github action 과 비슷한 사내 환경에서 golang 이미지 기반의 빌드로 docker build 를 수행하면 다음과 같은 에러가 발생한다.
RUN go install github.com/swaggo/swag/cmd/swag@latest && swag init
go: downloading golang.org/x/sys v0.18.0
runtime/cgo: pthread_create failed: Operation not permitted
SIGABRT: abort

# 이 현상으로 이미 이슈가 등록되어 있지만 아직 해결되진 않았다.

근본적인 원인은 libseccomp 라는 Debian Debian Bookworm 패키지/라이브러리에 사용되는 새로운 syscall 이 차단되었기 때문이라고 한다. 

golang:1.23.3 (태그 버전에 suffix 가 없으면 현재 debian bookworm 버전임)
이미지를 사용할때 발생한 문제로
위 글중에 bullseye 를 사용하면 된다고 하는 커멘트가 있어 
golang:1.23.3-bullseye 로 변경해서 시도하니 된다.

# 참고로 로컬에 이미지 다운 받아 버전 확인해보면 debian 버전이 다르다.
docker run -it golang:1.23.3

docker run -it golang:1.23.3-bullseye

# 참고 golang 이미지

docker build image apt-update error

# 잘 되던 docker 이미지 빌드 중 Dockerfile 에서 패키지 업데이트시
RUN apt-get update
...
#6 10.23 Reading package lists...
#6 10.24 W: The repository 'http://security.debian.org/debian-security stretch/updates Release' does not have a Release file.
#6 10.24 W: The repository 'http://deb.debian.org/debian stretch Release' does not have a Release file.
#6 10.24 W: The repository 'http://deb.debian.org/debian stretch-updates Release' does not have a Release file.
#6 10.24 E: Failed to fetch http://security.debian.org/debian-security/dists/stretch/updates/main/binary-amd64/Packages  404  Not Found
#6 10.24 E: Failed to fetch http://deb.debian.org/debian/dists/stretch/main/binary-amd64/Packages  404  Not Found
#6 10.24 E: Failed to fetch http://deb.debian.org/debian/dists/stretch-updates/main/binary-amd64/Packages  404  Not Found
#6 10.24 E: Some index files failed to download. They have been ignored, or old ones used instead.
------
executor failed running [/bin/sh -c apt-get update && apt-get install -y net-tools htop lsof wget curl rsync vim tar man-db traceroute]: exit code: 100

# 기본 이미지를 변경하면 잘 동작한다. 
FROM golang:1.17-stretch  -> FROM golang:1.19

# 참고로 데이안 계열 이미지 suffix 로 붙는 이름(코드네임)
-없는경우 debian latest
-bullseye: debian 11 
-buster: debian 10.4
-stretch: debian 9
-jessie: debian 8