홈>
Gitlab에서 CI 파이프 라인을 사용하여 Raspbian에 배포 할 도커 이미지를 빌드하고 있습니다. 내 빌드는 일부 개인 NPM 패키지에 액세스해야하기 때문에 환경 변수 $NPM_TOKEN에 저장된 값을 사용하여 토큰 파일을 만드는 다음 줄을 Docker 파일에 포함시킵니다.
RUN echo //registry.npmjs.org/:_authToken=$NPM_TOKEN > ~/.npmrc
이것은 평소의 이미지 (
resin/raspberrypi3-node
)로 만들 때 잘 작동합니다
). 그러나 내 컨테이너 중 하나는
armhf/ubuntu
에서 제작되었습니다.
. 위의 행을 실행하면 빌드가 다음 오류와 함께 실패합니다.
standard_init_linux.go:207: exec user process caused "no such file or directory"
The command '/bin/sh -c echo //registry.npmjs.org/:_authToken=$NPM_TOKEN >> ~/.npmrc' returned a non-zero code: 1
docker build
에서 빌드가 제대로 실행됩니다.
내 개발 머신 (Windows 10)에서는 gitlab 파이프 라인에는 없습니다.
도커와 파이프 라인 파일을 최소한으로 제거하려고 시도했으며 경로에서 환경 변수와 물결표를 제거했지만 우분투 (수지가 아닌) 이미지에서는 여전히 실패합니다.
Dockerfile.test.ubuntu :
FROM armhf/ubuntu
RUN echo hello > world.txt
Dockerfile.test.resin :
FROM resin/raspberrypi3-node
RUN echo hello > world.txt
gitlab-ci.yml :
build_image:
image: docker:git
services:
- docker:dind
script:
- docker build -f Dockerfile.test.resin . # Succeeds
- docker build -f Dockerfile.test.ubuntu . # Fails
only:
- master
유사한 문제를 검색했으며
.sh
를 실행할 때이 오류가보고되었습니다.
CRLF
가 포함 된 파일
조합. Windows에서 개발 중이지만 IDE (VS 코드)가
LF
를 사용하도록 설정되었습니다.
CRLF
가 아닌
위의 파일을 모두 준수하는지 확인했습니다.
- 답변 # 1
관련 자료
- python - Docker를 사용하여 웹 애플리케이션 빌드 오류
- 도커 - 빌드하는 동안 컨테이너에서 파일을 복사하십시오
- proxy - docker - 회사 방화벽 내에 구축하고 외부에 배포 하시겠습니까?
- node.js - 노드 서버에 대한 Docker 작성 실패
- linux - Spark-240 도커 빌드 실패
- python - 도 커가 종속성을 설치하지 못함
- 도커 - 다른 이미지를 만들기 위해 이미지 레이어를 재사용 할 수 있습니까?
- c# - docker - dotnet ef 데이터베이스 업데이트 실패
- linux - ARM 이미지에 대한 도커 빌드 실패
- ubuntu - apt-get install apt-transport-https가 Docker에서 실패합니다
- 도커 이미지가 스웜 모드에서 실행되지 않지만 동일한 yml 파일로 작성을 통해 작동하는 이유를 판별하십시오
- "사용 가능한 모듈 외부로 디렉토리 이동"으로 인해 Docker 빌드가 실패합니다
- build - / bin/sh - 0에서 도커 실행이 실패합니다 -c에는 인수가 필요합니다
- node.js - NodeJS 앱용 도커를 빌드 할 때 모듈 오류를 찾을 수 없습니다
- WSL에서 Docker를 실행하면 "RUN"명령이 실행되지 않거나 제대로 빌드되지 않습니다
- maven - IntelliJ IDEA에서 EclipseLink로 Java 코드 작성에 실패
- 소스에서 Coq 빌드가 잘못된 ocaml 버전으로 실패
- gtk - LablGtk 빌드 실패
- daemon - Centos 7에서 Docker 17이 시작되지 않습니다
- Docker에서 깨끗한 Go 응용 프로그램 빌드
관련 질문
- ubuntu : docker에서 설치할 때 대화 상자 질문에 대답할 수 있습니까?
- ubuntu : Arm Trusted Firmware-v2.2가 포함된 Avenger96 보드의 빌드 오류
- docker : nsenter 유틸리티를 사용하여 POD에서 Kubernetes 클러스터를 연결하고 관리하는 방법
- Docker 프로세스가 실행되지 않고 docker와의 상호 작용이 실패합니다.
- docker : Ubuntu 22.04의 도커 이미지에서 Svn 체크아웃에 응답이 없습니다.
- Docker Container 시작 시 "roscore" 다음에 "rosrun ...."을 시작하는 가장 좋은 방법은 무엇입니까?
- java : 프로덕션 환경에서 최적의 성능을 위한 APR
- linux : Dockerfile을 사용한 모범 사례
- linux : 텔넷: 원격 호스트에 연결할 수 없음: 호스트에 대한 경로 없음 -도커가 설치된 상태
- python : 도커 컨테이너에서 실행되는 .py 스크립트의 함수에서 데이터 프레임을 저장하는 방법은 무엇입니까?
여기에서와 같이 에코 인수에 큰 따옴표를 사용하십시오 :
먼저 Dockerfile에서
RUN ls -alrth ~/
를 수행하십시오. 대상 폴더의 접근성/존재 여부를 확인하려면이 오류는이 스레드에서 (응답없이)보고되었으며 여기에 표시된 Dockerfile의 최종 버전은이
.gitlab-ci.yml
를 사용하는 예입니다 .OP bighairdave는 의견을 확인합니다 :
와이즈 비즈variables: DOCKER_HOST: "tcp://docker:2375" DOCKER_DRIVER: overlay2 before_script: - docker run --rm --privileged hypriot/qemu-register