묻고 답해요
137만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결개발자를 위한 쉬운 도커
안녕하세요! 깃헙 액션 사용시 태그관련 문제가 있어서 여쭤봅니다.
안녕하세요 강의잘 보고 있습니다!workflow 야믈 파일에 공통적으로tags: ${{ secrets.DOCKERHUB_USERNAME }}/leafy-backend:${{ github.sha }}식의 태그 코드가 있는데 buildx failed with: ERROR: invalid tag "***/leafy-frontend:dc0c10532ac6c286eec74b3ddf4386ac8cb85a91": invalid reference format시의 해당 태그의 포맷이 옳지 않다고 나옵니다. 저는 webstorm으로 실습을 하고 있는데 IDE에서도 빨간줄이 그어져 있구요... 혹시 어떤 문제 때문인가요? 도커 관련 태그 관련 문서랑 stackoverflow나 https://docs.docker.com/reference/cli/docker/image/tag/에서 관련 내용을 찾아도 잘모르 겠습니다;;
-
해결됨개발자를 위한 쉬운 도커
leafy backend에서 db연결이 잘 되지 않습니다...
안녕하세요 leafy back-end 부분에서 db 연결이 안되서 실행이 안되는 오류가 발생합니다docker run -d -p 8080:8080 -e DB_URL=leafy-postgres --name leafy --network leafy-network starlightpizza/leafy-backend:1.0.0 명령어를 사용하여 컨테이너를 실행시키면 db 연결을 못해서 오류가 발생하는데요docker file은 위 와 같이 설정 되어있고postgresql은 아래와 같이 정상적으로 동작이 되는걸 확인했습니다.어떤 부분에서 문제가 발생하는지 잘 모르겠어서 질문드립니다..
-
해결됨개발자를 위한 쉬운 도커
(Node.js, VSCode) 컨테이너 내부에서 개발환경 구성 중 node 설치 실패
(Node.js, VSCode) 컨테이너 내부에서 개발환경 구성파트에서 Dev Container 로 설치 중(10:50)설치가 아래와 같이 실패했다고 뜹니다.> yorkie@2.0.0 install /workspaces/leafy/leafy-frontend/node_modules/yorkie > node bin/install.js setting up Git hooks can't find .git directory, skipping Git hooks installation [ ......] - postinstall:@jridgewell/trace-mapping: info lifecycle @jridg[ ......] - postinstall:@vue/cli-overlay: info lifecycle @vue/cli-overla[ ......] - postinstall:astral-regex: info lifecycle astral-regex@2.0.0~ > core-js@3.29.1 postinstall /workspaces/leafy/leafy-frontend/node_modules/core-js > node -e "try{require('./postinstall')}catch(e){}" Thank you for using core-js ( https://github.com/zloirock/core-js ) for polyfilling JavaScrip t standard library! The project needs your help! Please consider supporting of core-js: > https://opencollective.com/core-js > https://patreon.com/zloirock > https://boosty.to/zloirock > bitcoin: bc1qlea7544qtsmj2rayg0lthvza9fau63ux0fstcz I highly recommend reading this: https://github.com/zloirock/core-js/blob/master/docs/2023-02 -14-so-whats-next.md [ ......] \ postinstall:easy-stack: info lifecycle easy-stack@1.0.1~post[ ......] \ postinstall:fresh: info lifecycle fresh@0.5.2~postinstall: f[ ......] / postinstall:ansi-regex: info lifecycle ansi-regex@3.0.1~post[ ......] \ postinstall:retry: info lifecycle retry@0.13.1~postinstall: [ ......] \ postinstall:chokidar: info lifecycle chokidar@3.5.3~postinst[ ......] / postinstall:@babel/helper-compilation-targets: info lifecycl[ ......] | postinstall: info lifecycle vuex@4.1.0~postinstall: vuex@4.1[ ......] - postinstall: info lifecycle vuex@4.1.0~postinstall: vuex@4.1[ .....] / prepare:leafy-frontend: info lifecycle leafy-front@0.1.0~prenpm WARN optional SKIPPING OPTIONAL DEPENDENCY: fsevents@2.3.2 (node_modules/fsevents): npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for fsevents@2.3.2: wanted {"os":"darwin","arch":"any"} (current: {"os":"linux","arch":"x64"}) added 967 packages from 521 contributors and audited 968 packages in 162.033s 104 packages are looking for funding run `npm fund` for details found 36 vulnerabilities (29 moderate, 1 high, 6 critical) run `npm audit fix` to fix them, or `npm audit` for details Done. Press any key to close the terminal.다행이 npm은 정상적으로 설치되어 있으나$ npm --version 6.14.18node 설치가 문제가 생긴 것 같습니다.$ node version internal/modules/cjs/loader.js:934 throw err; ^ Error: Cannot find module '/workspaces/leafy/leafy-frontend/version' at Function.Module._resolveFilename (internal/modules/cjs/loader.js:931:15) at Function.Module._load (internal/modules/cjs/loader.js:774:27) at Function.executeUserEntryPoint [as runMain] (internal/modules/run_main.js:75:12) at internal/main/run_main_module.js:17:47 { code: 'MODULE_NOT_FOUND', requireStack: [] }근데 serve는 실행이 됩니다. (다만 :80으로)$ npm run serve > leafy-front@0.1.0 serve /workspaces/leafy/leafy-frontend > vue-cli-service serve --port 80 Browserslist: caniuse-lite is outdated. Please run: npx update-browserslist-db@latest Why you should do it regularly: https://github.com/browserslist/update-db#readme INFO Starting development server... DONE Compiled successfully in 65898ms 6:25:25 PM App running at: - Local: http://localhost:80/ It seems you are running Vue CLI inside a container. Access the dev server via http://localhost:<your container's external mapped port>/ Note that the development build is not optimized. To create a production build, run npm run build.
-
해결됨개발자를 위한 쉬운 도커
안녕하세요! 질문이 있습니다.
안녕하세요! 강의 정말 잘보고 있습니다.2개의 궁금증이 생겨서 여쭤봅니다. 쉬울 수 있지만 저에겐 헷갈리는 부분같습니다.우선 OS에 관한 질문입니다. 이미지를 만드는 강의에서 그림으로 이미지 내부의 모양을 표현해주실 때가 있는데 그림에서 이미지가 OS를 가지고 있는 거처럼 느껴집니다. 실제로 이미지 안에 OS가 설치되어 있나요? (호스트 OS의 커널을 이용해서 만드는 거라고 이해했어서 실제 OS가 들어가 있진 않을 것 같은데 라는 생각이 들었습니다) 두번째는 포트포워딩쪽 질문입니다. 포트포워딩이 외부 IP가 인바운드를 할 때 특정 포트를 지정해 놓는 것이 자연스럽다고 이해했습니다. 그렇다면 제가 로컬에서 애플리케이션을 만들어서 8080포트로 열어두면 포트포워딩 쪽 테이블에 8080포트로 만들어 지는건가요? (미리 지정해 놓는다라는 개념이 조금 헷갈리는 것 같습니다.) 감사합니다 :)
-
미해결개발자를 위한 쉬운 도커
도커 볼륨(Docker Volume) 21:00~23:00 nginx 실습 부분
안녕하세요? 볼륨 nginx 실습부분에서 pwd 경로(index) 폴더로 볼륨을 지정하고 nginx를 아무리 다시 실행해 봐도 강사님 화면처럼 403 Forbidden이 나오지 않고 Welcome to nginx 화면이 나옵니다.제가 뭘 잘못한 건가요? $ pwd /c/adol/#study/Docker/EasyDocker/index docker run -d -p 8000:80 --name my-nginx-a -v /c/adol/#study/Docker/EasyDocker/index:/usr/share/nginx/html nginx d6c95b6bd03c21b0cf643614b42c440f4a91a94bb9a7808d5e932c719ad71ecf docker run -d -p 8001:80 --name my-nginx-b -v /c/adol/#study/Docker/EasyDocker/index:/usr/share/nginx/html nginx 8e1f6e6ed1f3fcb993120aefcfede0841af72f5a291e86f01cd0567d2e7400ba 제가 뭘 잘못했는지 알려 주시면 감사하겠습니다.OS는 Windows이고, 강사님이 따로 경로 // 언급 안 해서 안 붙였습니다.
-
해결됨개발자를 위한 쉬운 도커
git clone https://github.com/daintree-henry/leafy.gif가 not found로 뜹니다.
PostgreSQL 컨테이너 구성에서 2:05초에 leafy 소스코드 다운로드를 하는데 아래와 같이 찾을 수 없습니다. $ git clone https://github.com/daintree-henry/leafy.gif Cloning into 'leafy.gif'... remote: Repository not found. fatal: repository 'https://github.com/daintree-henry/leafy.gif/' not found 실제 github를 가도 해당 gif파일이 존재하지 않습니다.이전 leafy 실습 테스트에서도 내부 사진들은 전부 로드되지 않았는데, 파일이 없다 보니 동일한 문제였던 것 같습니다.
-
해결됨개발자를 위한 쉬운 도커
docker compose부분 질문드립니다
제가 이해하는 바로는 build에 있는 도커파일을 바탕으로 image에 적힌 이름으로 이미지를 생성한다라고 이해했는데요 사진속에 초록색 부분 run부분에 deviwikirepo/leafy-postgres:1.0.0이 아니라 leafy-backend:5.0.0-compose가 있어야 하는게 아닌가요?
-
해결됨개발자를 위한 쉬운 도커
docker 볼륨마운트에 대해서 질문드립니다
안녕하세요 :)배운 내용을 토대로 제 개인 우분투 컴퓨터 서버에 배포를 하려 하는데요수업에서 배운 3-Teir 형식으로 network설정도 하고, /api로 스프링 서버에 요청이 가도록 nginx도 설정했습니다 서버에 만들어놓은 RAID1 (경로는 /mydata/img) 디렉토리를 스프링과 볼륨 마운트해서 POST 요청시 이미지를 저장하도록 만들었는데요저장이 잘 되는건 확인했는데 클라이언트에서 src에 이미지경로를 어떻게 설정해야 할까요? 찾아보고 구현해본 방법중에서 아래 사진과 같이 만들었는데요 이게 3-Teir 의 요점과도 가장 잘 맞는거 같아서요..uploadPath와 RAID1을 볼륨 마운트하고,src="/images/이미지명",nginx에 location 으로 proxy_pass 설정만 해주면 될까요?아니면 추가적으로 설정할게 더 필요할까요?@Configuration public class WebConfig implements WebMvcConfigurer{ @Value("${upload.path}") private String uploadPath; @Override public void addResourceHandlers(ResourceHandlerRegistry registry) { registry.addResourceHandler("/images/**") .addResourceLocations("file:/" + uploadPath); } }아니면 진짜 정배가 따로 있을까요 ㅋㅋ...정확한 방법을 알고싶어서 질문드립니다 ㅠ
-
미해결개발자를 위한 쉬운 도커
docker remote JVM debug 설정
안녕하세요. 강의듣다가 Remote JvmDebug에서 Before launch를 설정하려고 하는데요. 제 인텔리제이에서는 Launch Docker Before Debug라는 항목이 보이지 않아서요.. plugin으로 docker설치하고 다시 intellij 실행하였고, 인텔리제이 버전은 2024.1 입니다. Mac 환경이고.. 왜 저는 안나오는지 모르겠어요 ㅠㅠ
-
해결됨개발자를 위한 쉬운 도커
[개발환경구성] docker vscode로 실행시
vscode로 node설치 안하고 node docker를 이용해서 npm install을 하고서 npm run serve 명령어를 하면요분명 localhost:80 이라고 쓰여있는데 막상 눌러서 브라우저에 니깐 포트번호가 다르더라고요.그냥 제 PC에 브라우저에서 localhost:80이라고 접속하면 되지 않구요!왜그런걸까요?? 이거에 대한 설명이 부족한거 같아서 질문으로 올립니다.
-
해결됨개발자를 위한 쉬운 도커
docker 실행시 네트워크 질문
강사님 강의 잘 듣고 있습니다.docker 컨테이너 실행시, --network 옵션으로 네트워크를 지정해주지 않으면 디폴트로 'bridge' 라는 네트워크에 컨테이너가 실행되는건가요?? network 리스트에서 'bridge'라는 name을 찾아서 기본값으로 사용하는걸까요?
-
해결됨개발자를 위한 쉬운 도커
컨테이너 실행 명령어관련 질문드립니다.
명령어 관련해서 헷갈리는 부분이 있어 질문드립니다.명령어 "docker run ~" 관련해서 '-p' 옵션을 따로 추가해서 설정하지 않고 실행하면 특정 포트로 publishing이 되지는 않지만 컨테이너가 내부에서 그냥 실행 되고있는건가요??
-
해결됨개발자를 위한 쉬운 도커
이미지 레이어 관련 궁금증 질문드립니다!
안녕하세요 궁금증이 생겨 질문드립니다!강의 중 엔진엑스로 만든 이미지가 있는데 index.html이 다른 A가 있고 B가 있다라는 예시가 있었습니다. 이때 아래와 같이 설명해주셨는데요 이미지를 공유해서 사용하는거랑 컨테이너 생성속도랑 어떻게 연관이 있는건지 잘 이해가 가지 않아 질문드립니다.동일한 이미지로 컨테이너를 아주 많이 만들어도 이 이미지로 실행된 모든 컨테이너가 하나의 이미지를 공유해서 읽어옵니다. 실제로 큰 부분을 차지하는 이미지를 하나로 유지할 수 있기 때문에 컨테이너를 생성할 때 속도가 빨라지는 것이죠. 또한 아래와 같이 설명해주셨는데요컨테이너를 만들 때 사용된 이미지에 따라서 이미지의 읽기 전용 레이어 전체를 공유할수도 있고 일부만 공유할 수도 있습니다 이렇게 이미지의 읽기 전용 레이어를 활용하면 컨테이너를 실행할 때 전체 공간을 복사하지 않아도 되기 때문에 컨테이너를 빠르게 실행할 수 있습니다. 그리고 컨테이너가 늘어나면서 사용하는 공간을 최대한 작게 관리할 수 있습니다.엔진엑스 이미지 A가 다운받아져있다 가졍하고 index.html이 다른 이미지 B를 다운 받는다 가정해보겠습니다. 이미지 B를 다운받을때 이미지 A와 레이어가 같은것은 다운받지 않고 레이어가 다른 index.html레이어만 다운받는걸까요? 컨테이너가 늘어나면서 사용하는 공간을 최대한 작게 관리할 수 있다라는게 어떤것인지 잘 이해가 되지 않아 질문드려봅니다 (레이어별로 파일이 나뉘어 있는걸까요)혹시 위와 같은 부분을 실습으로 확인할 수 있는 것이나 공식문서 부분에서 확인할 수 있는게 있다면 같이 부탁드립니다!
-
미해결개발자를 위한 쉬운 도커
docker compose 사용시 프론트엔드에서 백엔드 연결
저번에 질문했었던 사람입니다.테스트로 인하여 코드가 계속 변경되어 새로 글 올립니다. 프론트엔드를 nextjs를 사용하고, 백엔드는 nestjs를 사용중입니다.nextjs에서 .env파일에 backend_url을 입력해놓고, nextjs에서 process.env.backend_url 을 통해서 사용중입니다. github 주소 : https://github.com/ababqw123/wedding-app이고,프론트엔드에서 .env파일에 backend 주소는 현재 로컬 테스트로로 작성해서 localhost의 8080 포트를 사용중이고, process.env.NEXT_PUBLIC_SERVER_URL을 통해서 가져오고 있습니다.docker compose에서도 8080포트로 지정을 따로 해주었습니다.docker로 연결했을 때 백엔드 주소를 어떻게 설정해야할지 정확하게 몰라서 문의 드립니다.
-
미해결실전! GitHub Actions으로 CI/CD 시작하기
EKS
강의대로 따라 했는데 다 설치후에 AWS EKS에서 확인을 해보니 생성이 되지 않았는데혹시 다른부분 봐야할부분이 있을까요??
-
미해결실전! GitHub Actions으로 CI/CD 시작하기
aws과금
강의를 들으면서 aws설정중인데요 혹시 어느부분부터가 과금이 측정될까요?? 아직 강의를 다안보고 eks 설정부분 듣고 있습니다. 괜히 이거 설정해 놓고 냅두면 과금될까봐 걱정되서요 감사합니다.
-
미해결실전! GitHub Actions으로 CI/CD 시작하기
링크
안녕하세요 그 critical issue 생성하고 slack 메세지가 오기는 하는데 링크가 오지를 않습니다. github.event.issue.url 로 html을 뺴고 작성하면 링크가 오기는 하는데 들어가면 json파일로 열립니다혹시 뭐 업데이트된 내용이 있을까요??감사합니다.
-
해결됨개발자를 위한 쉬운 도커
COPY --from=build /app/build/libs/*.jar /app/leafy.jar 명령어 질문
안녕하세요. 백엔드 Dockerfile 내용 보고서 질문이 있습니다. 실제로 실습을 하다 보면 /build/libs에서 이렇게 jar 파일이 두개가 생기는데요. COPY --from=build /app/build/libs/*.jar /app/leafy.jar 이 명령어는 .jar 확장자 파일 모두 leafy.jar이름으로 복사한다는 의미인거 같은데요. 이렇게 2개의 파일이 있거나 또는 2개 이상의 파일이 있을때.. 1) 마지막 파일 기준으로 복사가 되는걸까요? 2) 아니면 두개의 파일이 합쳐져서 leafy.jar로 하나로 복사가 되는걸까요? 두개의 파일이 하나로 합쳐진다면 실행할때 잘 안될거 같은 느낌이 들어서요. 3) 추가적으로 -plain과 그냥 .jar파일 차이점도 궁금하고 왜 2개가 나오는지도 궁금합니다.
-
해결됨개발자를 위한 쉬운 도커
docker compose 사용시 프론트엔드에서 백엔드 연결
프론트엔드를 nextjs를 사용하고, 백엔드는 nestjs를 사용중입니다. nextjs에서 .env파일에 backend_url을 입력해놓고, nextjs에서 process.env.backend_url 을 통해서 사용중입니다. docker compose를 사용하여 백엔드와 프론트엔드를 실행 시키면 같은 docker network에 붙어있고compose의 프론트엔드에 environment에 backend_url을 backend이름으로 적었을 경우backend url이 아닌 현재 url을 불러옵니다. 어디가 문제일까요?
-
해결됨개발자를 위한 쉬운 도커
redis 운영 방법
일단 유익한 강의 감사드립니다 !강의 리마인드 중 갑자기 의문이들어서 질문 드려봅니다.Redis, PostgreSQL 등 db가 서버와 같은 머신에 설치되지않고 따로 별도의 머신에 설치되고 있습니다.대부분의 아키텍쳐가 이런 형상인데 서버랑 분리해서 따로 운영하는 이유가 있을까요?