#9 11.82 npm ERR! code ENOENT
#9 11.83 npm ERR! path git
#9 11.83 npm ERR! errno -2
#9 11.83 npm ERR! enoent Error while executing:
#9 11.83 npm ERR! enoent undefined ls-remote -h -t ssh://git@github.com/eligrey/FileSaver.js.git
#9 11.83 npm ERR! enoent
#9 11.83 npm ERR! enoent
#9 11.83 npm ERR! enoent This is related to npm not being able to find a file.
#9 11.85
#9 11.85 npm ERR! A complete log of this run can be found in:
#9 11.85 npm ERR!     /root/.npm/_logs/2020-11-10T14_49_13_350Z-debug.log

이거로 한참을 헤매었다.... 아오~

 

FROM node:14.15-alpine
WORKDIR /app
COPY ["package.json", "package-lock.json*", "npm-shrinkwrap.json*", "./"]
RUN npm install
COPY . .
EXPOSE 3000
CMD ["npm", "start"]

dockerfile이다... 별 문제 없어 보인다. 그러니 저런 에러가 나오면 멘붕이지...

alpine 이미지의 특성인지는 모르겠지만 "git@github.com/eligrey/FileSaver.js.git" 이 repository를 땡겨오는데 문제가 생겼고 path git 이라는 문구도 보인다... 설마설마... alpine에 git이 없나??? (npm install인데 git에서도 땡겨오는지는 몰랐음....)

 

RUN git --verion을 추가하기에 이르렀다. 예상대로 git 명령어 없음.

 

RUN npm install 전에 아래 추가하여 git 설치 했더니 문제 없이 docker image가 build되었다.

 

RUN apk update && apk upgrade && apk add --no-cache bash git openssh

docker build 후에 docker-compose 설정해서 실행하는데 "sh: react-scripts: not found"를 못찾는 상황이 생겼다.

VS code의 docker plug-in을 통해 Dockerfile을 생성했는데 이 부분에서 문제 였다.

 

RUN npm install -g react-scripts

 

위처럼 docker container상에는 react-scripts가 설치 되어 있지 않아서 발생한 문제다.


docker-compose 문제가 아니라 dockerfile 문제로 자동 생성한 것은 역시나 꼼꼼히 다시 봐야 겠다는 생각이 들었다.

'Operating System > Docker | Kubernetes' 카테고리의 다른 글

npm ERR! code ENOENT  (0) 2020.11.11
docker-compose mysql Connection refused  (2) 2020.09.18

먼저 test용 docker를 docker-compose를 사용해서 간단히 구축했다.

 

그런데... DB connection이 안된다...

 

Caused by: java.net.ConnectException: Connection refused (Connection refused)

 

흠... 구글링 잘 알되고 (키워드가 뭔가 없었던 것 같다..) application.yml과 docker-compose.yml을 다시 훑어 봐도 문제는 없어 보였다.

 

예전 기억을 떠올리고 떠올리다가 번개처럼 스친 기억!

---
spring:
  profiles: dev
# ===============================
# = DATA SOURCE
# ===============================
  datasource:
    hikari:
      driver-class-name: com.mysql.cj.jdbc.Driver
      jdbc-url: jdbc:mysql://localhost:3306/vermont
      ....

평소 같았으면 전혀 문제 없는 내용....

version: '3'

services:
  db:
    image: mysql:5.7
    restart: always
    command: --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci
    environment:
      MYSQL_ROOT_PASSWORD: XXXXX
      MYSQL_USER: XXXXX
      MYSQL_PASSWORD: XXXXX
      MYSQL_DATABASE: vermont
    volumes:
      - db-data:/var/lib/mysql
    ports:
      - 3306:3306
    expose:
      - 3306
  adminer:
    image: adminer
    restart: always
    ports:
      - 8080:8080
  vermont:
    image: vermont
    restart: always
    ports:
      - 8888:8888
    depends_on:
      - db
volumes:
  db-data:

그러나 docker-compose로 구성하면 다른 얘기가 된다.

위와 같이 services 아래 서비스 이름을 지정하게 되는데 connection url도 서비스 이름으로 접근해야 한다.

그래서 jdbc:mysql://localhost/vermont...가 아닌 jdbc:mysql://db/vermont....로 바꿔야 한다.


알고 있던 내용이었는데... 역시 노트 해놓지 않으니 1시간 허비... 구글링도 잘 못찾았던 것 같다. 노트노트노트!

'Operating System > Docker | Kubernetes' 카테고리의 다른 글

npm ERR! code ENOENT  (0) 2020.11.11
docker-compose react sh: react-scripts: not found  (0) 2020.09.19

+ Recent posts