묻고 답해요
141만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨개발자를 위한 쉬운 도커
Leafy 네트워크 질문이 있습니다.
수강 중에 개인적인 궁금증이 생겨 질문드립니다.Leafy 애플리케이션에서 네트워크를 새롭게 만든 주요 이유가 기본 네트워크에서는 DNS 기능을 제공하지 않기 때문에 즉, 컨테이너가 종료되고 다시 실행될 때 IP가 바뀌게 되어 DB로 연결이 안되는 상황이 발생할수 있다고 하셨습니다.그렇다면 백엔드 에서 DB 호스트 URL을 localhost로 연결을 하면 굳이 DNS 기능을 사용 하지 않아도 될꺼같다는 생각이 듭니다. 예를 들어 EC2 서버 하나에 실습 서버인 백/프론트/DB 컨테이너를 띄울 경우 입니다 !혹시 각각 다른 EC2 서버 3대에 각각의 컨테이너를 띄워 배포하는 경우에는 DNS 기능이 필요하니 이럴 때를 위해 네트워크를 생성해서 세팅을 해야 할까요 ?
-
해결됨개발자를 위한 쉬운 도커
안녕하세요 선생님, 5강까지 수강한 시점에서 질문드리고 싶습니다.
안녕하세요 선생님, 현재 선생님께서 예제로 올려주신 파일이 아닌 제 프로젝트에 적용하며 수강하고 있는 학생입니다.도커 이미지를 빌드할 때 멀티 스테이징 기법을 사용하는 이유는 빌드할 때 사용하는 모듈들이 애플리케이션을 실행할 때 사용하는 환경에서는 필요없기 때문에 빌드 이미지와 실행 이미지를 나누어 최종적으로 빌드되는 실행 이미지에서 gradle과 같은 무거운 부분들을 떼내기 위해서라고 이해하였습니다.만약 그렇다면 최종적인 이미지에는 yml에 들어있는 private key같은 보안값들이 들어있지 않는 것으로 이해되는데, yml이 최종 이미지에 들어있지 않음에도 보안값들을 환경변수로 전달해야 하는 이유를 알고 싶습니다.원래 추후 git actions등을 사용하여 깃허브에 push만 하면 자동으로 빌드 후 배포까지 되게끔 파이프라인을 구축할 때 깃허브에는 yml이 올라가있지 않기 때문에 깃허브에는 환경변수를 사용한 yml을 올려두고 강의내용대로 환경변수로 전달하는 과정까지 자동화하는구나 라고 이해하였는데, ChatGPT에서는 멀티스테이징 기법을 사용하더라도 이미지 빌드과정 자체에서 yml을 포함하지 않아야 보안상에 문제가 없다고 하여 질문드립니다.추가적으로 차후 강의를 들으면 해결될 궁금증 같지만, 현재 제 프로젝트에는 프론트엔드는 다른 VM을 통한 서버가 올라가있고, 데이터베이스 또한 따로 RDS에 올라가있는데 이럴 때는 간단히 스프링 애플리케이션만 이미지로 빌드하여 서버 VM(EC2)에 배포하고, 수작업으로 https 프로토콜 인증 작업만 진행하면 되는지 또한 여쭤보고 싶습니다.친절한 강의 해주셔서 감사합니다.
-
미해결그림으로 배우는 쿠버네티스(v1.30) - {{ x86-64, arm64 }}
8.6.네트워크 정책 (NetworkPolicy)에서 NetworkPolicy-ipBlock-except.yaml에 대한 질문
안녕하세요.NetworkPolicy-ipBlock-except.yaml 파일을 [root@m-k8s 8.6]# cat 3-3-NetworkPolicy-ipBlock-except.yaml apiVersion: networking.k8s.io/v1 kind: NetworkPolicy metadata: name: networkpolicy-ipblock-except namespace: default spec: podSelector: {} policyTypes: - Ingress - Egress ingress: - from: - ipBlock: cidr: 172.16.0.0/16 # change your CIDR to shut it down except: - 172.16.132.0/24 egress: - to: - ipBlock: cidr: 172.16.0.0/16 # change your CIDR to shut it down except: - 172.16.132.0/24위와 같이 설정 후,[root@m-k8s 8.6]# k apply -f 3-3-NetworkPolicy-ipBlock-except.yaml networkpolicy.networking.k8s.io/networkpolicy-ipblock-except created [root@m-k8s 8.6]# k get po -o wide | grep deploy-ipblock-ddb5f6ff9 deploy-ipblock-ddb5f6ff9-klkkj 1/1 Running 0 20s 172.16.103.150 w2-k8s <none> <none> deploy-ipblock-ddb5f6ff9-l7fdx 1/1 Running 0 20s 172.16.132.37 w3-k8s <none> <none> deploy-ipblock-ddb5f6ff9-q4r7m 1/1 Running 0 20s 172.16.221.154 w1-k8s <none> <none> [root@m-k8s 8.6]# k exec net -it -- /bin/bash [root@net /]# ping 172.16.103.150 PING 172.16.103.150 (172.16.103.150): 56 data bytes ^C --- 172.16.103.150 ping statistics --- 5 packets transmitted, 0 packets received, 100% packet loss [root@net /]# ping 172.16.132.37 PING 172.16.132.37 (172.16.132.37): 56 data bytes ^C --- 172.16.132.37 ping statistics --- 5 packets transmitted, 0 packets received, 100% packet loss [root@net /]# ping 172.16.221.154 PING 172.16.221.154 (172.16.221.154): 56 data bytes ^C --- 172.16.221.154 ping statistics --- 4 packets transmitted, 0 packets received, 100% packet loss ping을 보낼 시, 강의에서는 w3-k8s에만 ping이 안가야 정상이고 나머지 (w1-k8s / w2-k8s)에는 ping이 가야하지만 NetworkPolicy-ipBlock-except.yaml 적용 시, 어떠한 노드에도 핑이 가지 않습니다. yaml 파일에서도 except를 172.16.132.0/24로 주었지만 되지 않습니다.해당 IP 대역만 제외했는데 왜 다른 대역도 먹통이 되는지 이해가 안됩니다 ㅠㅠ(NetworkPolicy-ipBlock-except.yaml 해제하면 모든 노드에 ping이 감)
-
미해결쉽게 시작하는 쿠버네티스(v1.30) - {{ x86-64, arm64 }}
worker node 이미지가 한개 부족합니다
[질문 하기]vagrant 로 설정이 어려워 이미지를 다운받기 위해 OneDrive 를 접속하였을때 아래와 같이 worker node 가 하나 부족하여 문의 드립니다
-
미해결AWS 배포 완벽가이드 (feat. Lightsail, Docker, ECS)
자바 스프링 개발자입니다.
안녕하세요. 강의 너무 잘듣고있습니다. node 기반의 강의이기에 pm2 등의 내용을 듣고있던 중, 궁금한 부분이 있어 문의드립니다.1개의 vm에서 pm2을 사용하여 nodejs app을 2개를 올리고 있습니다. 제 생각에는 nodejs가 싱글스레드여서 vm의 cpu 개수만큼 사용하기 위해서 app을 여러 개를 띄운다로 이해하였습니다. 맞을까요?맞다면, 스프링의 경우에는 멀티스레드로 제공하기 때문에 위와 같이 1개의 vm에 여러개의 app을 띄울 필요가 없이 1개의 vm에 1개의 app만 띄우면 위와 같은 동작을 기대할 수 있다고 생각했습니다. 맞을까요?1개의 vm에서 여러 개의 스프링부트 app을 띄워야한다면 pm2와 같은게 필요한거 같은데, 스프링에서 pm2와 같은게 있을까요?노드 기반 강의이기에 조금 아쉬운 부분은 있지만, 강의 재밌게 듣고있습니다. 감사합니다!
-
해결됨개발자를 위한 쉬운 도커
WSL 도커 컨테이너 개발 오류
도커 데스크탑 대신 wsl에 도커 엔진을 설치해서 사용중입니다.윈도우에서 devcontainer 설정을 하고 개발 컨테이너 폴더 열기를 했을 때 아래와 같이 에러가 발생하는데, 혹시 path를 C:/Users/... 대신 /mnt/c/Users/...로 수정할 수 있는 방법이 있을까요?ERROR: unable to prepare context: path "c:Usersc...기타경로" not found
-
미해결실습으로 배우는 선착순 이벤트 시스템
consumer 셋팅 숫자 출력이 안됩니다.
docker exec -it kafka kafka-console-consumer.sh --topic coupon_create --bootstrap-server localhost:9092 --key-deserializer "org.apache.kafka.common.serialization.StringDeserializer" --value-deserializer "org.apache.kafka.common.serialization.LongDeserializer"라고 터미너에 입력한 후에 테스트 코드package com.example.coupon_server.service; import com.example.coupon_server.repository.CouponRepository; import org.junit.jupiter.api.DisplayName; import org.junit.jupiter.api.Test; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.context.SpringBootTest; import java.util.concurrent.CountDownLatch; import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; import static org.assertj.core.api.AssertionsForClassTypes.assertThat; @SpringBootTest public class ApplyServiceTest { @Autowired private ApplyService applyService; @Autowired private CouponRepository couponRepository; @Test @DisplayName("쿠폰 한개 적용 테스트") public void applyOneCoupon() { applyService.applyCoupon(1L); long count = couponRepository.count(); assertThat(count).isEqualTo(1); } @Test @DisplayName("쿠폰 여러개 적용 테스트") public void applyMultiCoupon() throws InterruptedException { int threadCount = 1000; ExecutorService executorService = Executors.newFixedThreadPool(32); CountDownLatch latch = new CountDownLatch(threadCount); for (int i = 0; i < threadCount; i++) { long userId = i; executorService.submit(() -> { try { applyService.applyCoupon(userId); } finally { latch.countDown(); } }); } latch.await(); Thread.sleep(10000); long count = couponRepository.count(); assertThat(count).isEqualTo(100); } @Test @DisplayName("한명당 한개의 쿠폰만 발급") public void applyOneCouponPerUser() throws InterruptedException { int threadCount = 1000; ExecutorService executorService = Executors.newFixedThreadPool(32); CountDownLatch latch = new CountDownLatch(threadCount); for (int i = 0; i < threadCount; i++) { long userId = i; executorService.submit(() -> { try { applyService.applyCoupon(1L); } finally { latch.countDown(); } }); } latch.await(); Thread.sleep(10000); long count = couponRepository.count(); assertThat(count).isEqualTo(1); } }로 작성했지만 터미널에서 강사님과 같이 숫자들이 찍히자 않습니다.그리고 터미널 안의 글씨 너무 작은것 같아요
-
미해결실습으로 배우는 선착순 이벤트 시스템
멀티 모듈
프로젝트 나누신것 같은데그냥 최상단 경로에서 프로젝트 하나 더 생성하고 난뒤에최상단에서 열면 되는건가요 ?
-
해결됨[코드캠프] 부트캠프에서 만든 고농축 백엔드 코스
docker
Access denied for user 'root'@'localhost' (using password: YES) my-backend-1 | Error: connect ECONNREFUSED 172.18.0.2:3306my-backend-1 | at TCPConnectWrap.afterConnect [as oncomplete] (node:net:1487:16)my-database-1 | '/var/lib/mysql/mysql.sock' -> '/var/run/mysqld/mysqld.sock'my-backend-1 | [Nest] 42 - 05/02/2024, 6:41:50 PM ERROR [TypeOrmModule] Unable to connect to the database. Retrying (2)...my-backend-1 | Error: connect ECONNREFUSED 172.18.0.2:3306my-backend-1 | at TCPConnectWrap.afterConnect [as oncomplete] (node:net:1487:16)my-database-1 | 2024-05-02T18:41:49.714242Z 0 [System] [MY-015015] [Server] MySQL Server - start.my-database-1 | 2024-05-02T18:41:50.845054Z 0 [System] [MY-010116] [Server] /usr/sbin/mysqld (mysqld 8.4.0) starting as process 1my-database-1 | 2024-05-02T18:41:50.991351Z 1 [System] [MY-013576] [InnoDB] InnoDB initialization has started.my-database-1 | 2024-05-02T18:41:51.037335Z 1 [ERROR] [MY-012585] [InnoDB] Linux Native AIO interface is not supported on this platform. Please check your OS documentation and install appropriate binary of InnoDB.my-database-1 | 2024-05-02T18:41:51.037785Z 1 [Warning] [MY-012654] [InnoDB] Linux Native AIO disabled.my-database-1 | 2024-05-02T18:41:51.786685Z 1 [System] [MY-013577] [InnoDB] InnoDB initialization has ended.my-backend-1 | [Nest] 42 - 05/02/2024, 6:41:53 PM ERROR [TypeOrmModule] Unable to connect to the database. Retrying (3)...my-backend-1 | Error: connect ECONNREFUSED 172.18.0.2:3306my-backend-1 | at TCPConnectWrap.afterConnect [as oncomplete] (node:net:1487:16)my-database-1 | 2024-05-02T18:41:53.236794Z 0 [Warning] [MY-010068] [Server] CA certificate ca.pem is self signed.my-database-1 | 2024-05-02T18:41:53.237258Z 0 [System] [MY-013602] [Server] Channel mysql_main configured to support TLS. Encrypted connections are now supported for this channel.my-database-1 | 2024-05-02T18:41:53.247163Z 0 [Warning] [MY-011810] [Server] Insecure configuration for --pid-file: Location '/var/run/mysqld' in the path is accessible to all OS users. Consider choosing a different directory.my-database-1 | 2024-05-02T18:41:53.454585Z 0 [System] [MY-010931] [Server] /usr/sbin/mysqld: ready for connections. Version: '8.4.0' socket: '/var/run/mysqld/mysqld.sock' port: 3306 MySQL Community Server - GPL.my-database-1 | 2024-05-02T18:41:53.793849Z 0 [System] [MY-011323] [Server] X Plugin ready for connections. Bind-address: '::' port: 33060, socket: /var/run/mysqld/mysqlx.sockmy-backend-1 | query: SELECT VERSION() AS versionmy-backend-1 | query: START TRANSACTIONmy-backend-1 | query: SELECT DATABASE() AS db_namemy-backend-1 | query: SELECT TABLE_SCHEMA, TABLE_NAME, TABLE_COMMENT FROM INFORMATION_SCHEMA.`TABLES` WHERE TABLE_SCHEMA = 'mydocker' AND TABLE_NAME = 'board'my-backend-1 | query: SELECT * FROM INFORMATION_SCHEMA.`COLUMNS` WHERE TABLE_SCHEMA = 'mydocker' AND TABLE_NAME = 'typeorm_metadata'my-backend-1 | query: CREATE TABLE board (`number` int NOT NULL AUTO_INCREMENT, writer varchar(255) NOT NULL, title varchar(255) NOT NULL, contents varchar(255) NOT NULL, PRIMARY KEY (`number`)) ENGINE=InnoDBmy-backend-1 | query: COMMITmy-backend-1 | [Nest] 42 - 05/02/2024, 6:41:56 PM LOG [InstanceLoader] TypeOrmCoreModule dependencies initialized +3294msmy-backend-1 | [Nest] 42 - 05/02/2024, 6:41:56 PM LOG [GraphQLModule] Mapped {/graphql, POST} route +68msmy-backend-1 | [Nest] 42 - 05/02/2024, 6:41:56 PM LOG [NestApplication] Nest application successfully started +3ms 안되네요??
-
미해결대세는 쿠버네티스 [초급~중급]
[Mac] dashboard에서 pod 등록 시, 에러
실습 자료실의 1.27v 기준으로 전부 세팅 완료했는데Dashboard에서 Pod를 등록할 때 다음과 같은 에러가 발생합니다. 토큰은 cat ~/join.sh 에 있는 토큰값으로 대시보드에 접근했습니다. 왜 이럴까요..?
-
미해결멀티OS 사용을 위한 가상화 환경 구축 가이드 (Docker + Kubernetes)
apt-get update 명령어 오류
쿠버네티스 섹션에서 apt-get update 명령어를 입력하면 404오류가 발생하는데 원인이 뭔지 알수 있을까요?
-
해결됨개발자를 위한 쉬운 도커
docker-compose 내부 dns 관련 질문드립니다.
안녕하세요. 데브위키입니다.강의에 포함된 내용이 아니더라도 강의를 듣다가 궁금하신 점이 생기시면 부담없이 편하게 질문해주세요. 실습에 오류가 발생했거나 명령어가 예상한대로 실행되지 않으신 경우 사용하시는 OS 환경과 화면을 캡처해서 보내주시면 빠르고 자세하게 답변을 드릴 수 있습니다. 질문은 가능한 빠르게 답변 드리겠습니다. 😀감사합니다.해당 컴포즈 파일로 up -d 실행 후 docker ps를 하면 leafy-leafy-backend-1, leafy-leafy-frontend-1, leafy-leafy-postgres-1로 컨테이너 명으로 생성되는데, leafy-front, leafy-back에서 환경변수로 전달된 도메인이 어떻게 작동하는건가요??네트워크에서 이해한 바로는 컨테이너명으로 내부dns사용하는것으로 이해하였습니다! 추가적으로 docker insepct로 확인해보니 알리아스로 지정되서 동작하는걸로 유추되는데 이것이 맞을까요? 또한, 알리아스 지정은 compose파일에 있는 서비스명을 토대로 도커가 매핑해주는건가요?
-
미해결데브옵스(DevOps)를 위한 쿠버네티스 마스터
강의 흐름 이상
섹션 4 쿠버네티스 워크로드 - 4-1) 포드 디스크립터 작성강의에서kubectl port-forward 가 "해본적 없는데 해본적 있죠?" 하면서 나옵니다.또한 kubectl logs 도 그렇습니다.마치 순서가 바뀌었거나, 강의 내용이 추가/삭제하면서 흐름이 끊긴거 같습니다. 로드맵 얘기가 아닙니다. 강의를 처음부터 쭉 진행했을때 중간에 맥락이 끊긴거처럼 느껴진다는 것입니다.
-
미해결개발자를 위한 쉬운 도커
안녕하세요! 깃헙 액션 사용시 태그관련 문제가 있어서 여쭤봅니다.
안녕하세요 강의잘 보고 있습니다!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/에서 관련 내용을 찾아도 잘모르 겠습니다;;
-
해결됨[코드캠프] 부트캠프에서 만든 고농축 백엔드 코스
섹션6 04-05 몽구스 부분 수강중입니다.
backend 폴더 통합 터미널에서 mongoose를 설치하고,docker-compose build를 했는데 이런 에러가 계속해서 뜹니다.해결해보려고 에러 메세지를 읽어보니, mongoose와 my-backend 도커에 설치되는 node가 버전이 안맞는다는 것 같은데, 괜히 손댔다가 문제가 더욱 복잡해질까봐 섣부르게 건드리질 못하겠네요 ㅜㅜ 04-02 강의에서, backend 도커에 coolsms 가 설치되지 않았다고 하여 Dockerfile에개인적으로 이 코드를 추가해준 걸 제외하면 04-04까지 수강하는데 문제는 없었습니다.RUN yarn add coolsms-node-sdk어떻게 해야될까요?
-
해결됨[코드캠프] 부트캠프에서 만든 고농축 백엔드 코스
백엔드 과정을 수강 중인 학생입니다.
잘 몰라서 아는 지인에게 궁금해서 물어봤더니 도커라는 것을 받아서 거기에 리눅스 이미지로 올려서 쓰는게 있다고 하는데 그렇게 해서 수강해도 문제가 없을까요 ?또는 유튜브에 WSL2 Ubuntu 설치하는 방법도 있던데 이걸로 해도 수강에 문제 없을까요? 답변 부탁드립니다 ㅠㅠ
-
해결됨개발자를 위한 쉬운 도커
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은 아래와 같이 정상적으로 동작이 되는걸 확인했습니다.어떤 부분에서 문제가 발생하는지 잘 모르겠어서 질문드립니다..
-
해결됨AWS 배포 완벽가이드 (feat. Lightsail, Docker, ECS)
Not authorized to perform sts:AssumeRoleWithWebIdentity
안녕하세요 강사 님! 강의 열심히 잘 듣고 있습니다.마지막 강의까지 오게 되었는데요, 다름이 아니라 강사 님 코드 그대로 다 따라했는데도 불구하고Error: Could not assume role with OIDC: Not authorized to perform sts:AssumeRoleWithWebIdentity라는 에러가 뜹니다. IAM 에 역할도 부여하고, 정책에서 "Action": "sts:AssumeRoleWithWebIdentity" 이 있는 것도 확인되어 원인을 파악하지 못하고 있습니다.설명이 부족해서 죄송합니다 ㅠㅠ 그래도 혹시 짐작가는 다른 원인이 있을까요?
-
해결됨개발자를 위한 쉬운 도커
(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포트로 만들어 지는건가요? (미리 지정해 놓는다라는 개념이 조금 헷갈리는 것 같습니다.) 감사합니다 :)