Inflearn Community Q&A
No author
This post's author information has been deleted.
깃허브 액션에서 deploy가 실패해요
Resolved
Written on
·
542
1
1. 무엇을 하고 싶으신가요?
2. 언제, 어떤 오류가 발생하시나요?
3. 어떤 시도를 해보셨나요?
동일하게 파일을 넣고 simple-cicd를 넣고 실행시키는데 도커 배포에서 실패합니다.
err: #0 building with "default" instance using docker driver
23err: #1 [internal] load build definition from Dockerfile
24err: #1 transferring dockerfile: 2B done
25err: #1 DONE 0.0s
26err: ERROR: failed to solve: failed to read dockerfile: open Dockerfile: no such file or directory
27err: Error response from daemon: No such container: 843371319
28err: Unable to find image 'cokeholic-kim/docker-cicd-test:latest' locally
29err: docker: Error response from daemon: pull access denied for cokeholic-kim/docker-cicd-test, repository does not exist or may require 'docker login': denied: requested access to the resource is denied.
30err: See 'docker run --help'.
위의 배포파일을 서버로 복사하는부분은 잘 실행되었는지 똑같이 터미널에서 ls로 확인했을때 폴더와 파일은 잘 옮겨져있는데 docker배포부분에서 실패하는것같습니다.
4. 작성한 코드를 공유해주세요.
Quiz
지속적 배포(Continuous Deployment)가 지속적 전달(Continuous Delivery)과 다른 점은 무엇일까요?
수동으로만 배포합니다.
운영 환경 배포가 자동으로 이루어집니다.
빌드와 테스트 단계만 포함합니다.
코드 변경사항 검증 과정이 없습니다.
Answer 2
1
저도 배포단계에서 동일한 에러가 발생하는데,
이 질문 해결책 나왔나요?
Dockerfile
FROM node:21
WORKDIR /usr/src/app
COPY package.json ./
RUN npm install
COPY ./server.js ./
CMD ["npm","start"]simple-cicd.yaml
name: simple cicd # 워크플로우 이름
on: # 워크플로우 실행 조건
push:
branches: [ "main" ]
workflow_dispatch: # workflow 수동 실행 가능
jobs:
simple: # 변경 가능
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4 # $GITHUB_WORKSPACE 기준으로 체크 아웃
- name: 배포 파일을 서버로 복사
uses: appleboy/scp-action@v0.1.7
with:
host: ${{ secrets.HOST }}
username: ${{ secrets.USERNAME }}
key: ${{ secrets.SSH_PEM_KEY }}
source: "*,!.github,!.git" # 모든 파일을 복사하되, .github/.git 폴더는 제외
target: "$HOME/${{ github.repository_id }}"
- name: 도커 배포
uses: appleboy/ssh-action@v1.0.3
with:
host: ${{ secrets.HOST }}
username: ${{ secrets.USERNAME }}
key: ${{ secrets.SSH_PEM_KEY }}
script: |
cd $HOME/${{ github.repository_id }}
docker build -t ${{ github.repository }} .
docker rm -f ${{ github.repository_id }}
docker run -d -p 8080:5000 --name ${{ github.repository_id }} ${{ github.repository }}
배포하신 서버에 secrets.USERNAME으로 설정된 유저로 $HOME/ 밑에 숫자로된 디렉토리가 있을까요?
>>> 네 숫자로된 폴더 생성되었습니다.해당 디렉토리 밑에 Dockerfile이 정상적으로 복사가 됐을까요?
>>> 배포파일을 서버로 복사 단계는 오류없이 성공했다고 뜨는데,
해당 폴더에 Dockerfile 이 없네요...
맞습니다!
.github/workflows에 들어 있는건 이상하네요.
레포지토리 최상단에 있는게 맞습니다.
혹시 워크플로우 트리거 전 커밋하는 화면 공유 가능하실까요?

서버 구동에 필요한 모든 파일을 root 경로로 이동하고, workflows 에 simple-cicd.yml 파일만 다시 복붙한뒤 테스트 해보니까 정상적으로 배포까지 실행되었네요.
제 테스트 결과로는
루트 경로에 있는 파일들만 정상적으로 서버로 복사가 되었습니다.
경로 문제인지 왜 되는지는 정확히 모르겠습니다 ㅠㅠ
아.. 강의영상 다시 보니 yml 파일만 .github/workflows 폴더 내부에 있고... 나머지는 전부 루트 경로에 들어가는게 맞군요..
제가 경로를 잘못봤네요. (보다 졸았어요;;)
내부에다가 잘못만들어서 안된거네요;;
죄송합니다 ㅠㅠ
https://github.com/appleboy/scp-action/issues/59#issuecomment-964605479
위 이슈가 있긴한데 오래돼서 정확한지 모르겠네요.
제가 직접 테스트해보고 다시 말씀 드리겠습니다!
0
안녕하세요!
26err: ERROR: failed to solve: failed to read dockerfile: open Dockerfile: no such file or directory
27err: Error response from daemon: No such container: 843371319
28err: Unable to find image 'cokeholic-kim/docker-cicd-test:latest' locally질문 주신 내용의 위 부분을 봤을 때 simple-cicd 스크립트 파일의 아래 부분이 누락되어 있는게 아닌지 의심되네요.

정확히 어떤 셋팅을 하셨는지를 모르는 상황이라서 위 내용 올바르게 들어가 있는지 확인 부탁드리겠습니다.
위 내용 외에도 뭔가 스크립트나 도커파일 부분에서 제공해드린 것과 다른 내용이 있는걸로 보입니다. 가능하시다면 활용중이 yaml파일과 도커 파일 내용도 공유해주시면 감사하겠습니다.








안녕하세요.
두 가지 확인 요청드립니다.
배포하신 서버에 secrets.USERNAME으로 설정된 유저로 $HOME/ 밑에 숫자로된 디렉토리가 있을까요?
해당 디렉토리 밑에 Dockerfile이 정상적으로 복사가 됐을까요?
동일 오류라면 Dockerfile이 생성되지 않았거나 이상한 경로에 생성이 됐을 수 있을 것 같아 보입니다.
답변 주시면 가능한한 빨리 확인하고 회신 드리겠습니다!