728x90
반응형
도커를 배우고 처음으로 적용한 프로젝트이다.
윈도우를 사용하며 도커를 공부하면서 마운트가 안되는 오류가 있었다.
그래서 리눅스로 도커를 공부했었다.
루트폴더를 만들고 도커환경을 세팅하는 과정에서 문제가 발생했다.
리액트를 빌드하려고 하면
ERROR in [eslint] EACCES: permission denied, mkdir '/app/node_modules/.cache' 라는 오류문구가 떴다.
옆에 팀원이 맥을 사용하길래 도커를 깔고 해보라고 한 결과 맥은 이상없이 잘 빌드되고 실행됐다.
리눅스에서 구글링을 해보고 주변에 도움도 청하면서 온갖 방법을 시도했지만 해결할 수 없었다.
2일을 투자했지만 아무것도 얻지 못했다.
그래서 대안책으로 docker-compose를 통해 데이터베이스와 백엔드 두개의 컨테이너만 만들고 실행하고
리액트는 컨테이너를 만들지 않고 npm start로 따로 실행했다.
아마 로컬 리눅스에서 권한이 이상하게 꼬인걸수도 있지만 컴퓨터 두 대로 해봤는데 둘다 실패했고
스택오버플로우 같은 커뮤니티에서도 해결이 안된 사람이 많았다.
근거없는 생각이지만 배포할때 AWS에서 제공하는 리눅스에서는 잘 작동할것이라고 생각한다. ㅎㅎ...
작성한 Dockerfile
FROM node:18
WORKDIR /app
COPY package.json .
RUN npm install
COPY . .
EXPOSE 8000
CMD [ "npm","start" ]
docker-compose.yaml
version: "3.8"
services:
mysql:
image: mysql:8.0
env_file:
- ./env/mysql.env
front:
build: ./front
ports:
- "3000:3000"
volumes:
- ./front:/app
- /app/node_modules
stdin_open: true
tty: true
back:
build: ./back
ports:
- "8000:8000"
volumes:
- ./back:/app
- /app/node_modules
depends_on:
- mysql
env_file:
- ./env/back.env728x90
반응형
'팀프로젝트 > close_sea' 카테고리의 다른 글
| [CloseSea] NFT거래 권한 이슈 (0) | 2022.12.28 |
|---|---|
| [CloseSea] 지갑연결 버튼 (0) | 2022.12.28 |
| [CloseSea] 스마트 컨트랙트 (1) | 2022.12.27 |
| [CloseSea] swap페이지 만들기 (0) | 2022.12.27 |
| [CloseSea] eslint, prettier 설정 (0) | 2022.12.26 |
