묻고 답해요
164만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결비전공자도 이해할 수 있는 Docker 입문/실전
PostgreSql permission 에러
안녕하세요.실습을 진행하는 도중에 권한 문제와 관련된 에러를 만났습니다.docker logs 7be chmod: changing permissions of '/var/lib/postgresql/data': Operation not permitted The files belonging to this database system will be owned by user "postgres". This user must also own the server process.디렉토리에 대한 적절한 권한을 postgresql 컨테이너가 가지고 있지 못해서라고 하는데요. 이 때, Docker 볼륨을 사용해서 문제를 해결하는게 가장 적절할까요?docker volume create postgredata
-
해결됨인프런 클론코딩 Part 1: Next.js와 NestJS로 시작하는 실전 프로젝트
3000포트 겹치네요
혹시 헤메시는 분들을 위해next.js nest.js 모두 기본 포트를 3000번 사용합니다. 간단하게 수정하시려면 backend/main.ts파일에서 app.listen(port)를 변경 하셔서 사용하시면 됩니다.
-
해결됨[코드캠프] 부트캠프에서 만든 고농축 백엔드 코스
schema.gql 질문 드립니다.
entity 등으로 생성된 tpye 에서 강의에서 사용된 코드로 예시를 들면# product.entity.ts @JoinTable() @ManyToMany(() => ProductTag, (productTags) => productTags.products) @Field(() => [ProductTag], { nullable: true }) productTags: ProductTag[];위와같이 nullable 을 사용하여#schema.gql type Product { productId: String productName: String! description: String! productPrice: Int! isSoldout: Boolean! productSalesLocation: ProductSalesLocation productCategory: ProductCategory user: User productTags: [ProductTag!] }productTags: [ProductTag!] 와 같이 할 수 있었습니다.위에서 productTags: [ProductTag!]를 productTags: [ProductTag] 와같이 변경 해보려고합니다.방법이 있나요?@Field(() => [ProductTag, { nullable: true }], { nullable: true })에러는 발생하지 않지만 안됩니다.
-
해결됨[코드캠프] 부트캠프에서 만든 고농축 백엔드 코스
서버 재실행시 Many to Many
yarn start:dev 를 할 경우Many to Many 로 자동으로 생성되는 table이자꾸 문제를 일으키네요. 서버 재 실행시 기존에 만들어진 중간테이블 강의에서는 상품_상품태그 테이블이 되겠네요.해당 테이블을 삭제후 실행하지 않으면 에러발생시키네요.원인을 찾아보면 아래 코드의 주석된 custom join table 이 문제였는데요.기본 @JoinTable 사용시 문제는 사라집니다. // @JoinTable({ // name: 'PRODUCT_TO_PRODUCT_TAG', // 원하는 중간 테이블명 // joinColumn: { // name: 'PRODUCT_ID', // Product 엔티티 ID를 참조하는 컬럼명 // referencedColumnName: 'productId', // Product 엔티티의 실제 ID 컬럼명 (기본값은 PrimaryColumn 이름) // }, // inverseJoinColumn: { // name: 'PRODUCT_TAG_ID', // ProductTag 엔티티 ID를 참조하는 컬럼명 // referencedColumnName: 'productTagId', // ProductTag 엔티티의 실제 ID 컬럼명 // }, // }) @JoinTable() @ManyToMany(() => ProductTag, (productTags) => productTags.products) @Field(() => [ProductTag], { nullable: true }) productTags: ProductTag[]; 질문 1. 위의 문제를 해결할 수 있는 방법입니다.질문 2.DB 컬럼에는 UPPER_CASE (SCREAMING_SNAKE_CASE) 로 작성하지 않나요?그렇기 때문에 custom / 각 컬럼마다 @Column({ name: 'BOARD_TITLE', type: 'varchar', length: 50, nullable: false, }) @Field(() => String) boardTitle: string;위와 같이 컬럼명을 하나하나 지정해줬습니다.typeorm 또는 요즘 실무 컨벤션에서는 강의에서처럼 카멜표기법으로 사용하나요?Node 강의지만 Java기준 스프링 기본설정에서 카멜케이스조차도 스네이크로 자동 변환하는데 말이죠!msa 구조에서는 테이블은 공통된걸 사용할수도 있으니 궁금해서 질문 드립니다.
-
미해결비전공자도 이해할 수 있는 Docker 입문/실전
도커 설치
안녕하세요. 작성해주신 게시글을 보고 도커를 세팅하고 있습니다.일단 도커 설치는 완료하였습니다.이후 wsl 커널 업데이트를 하라고 써있는데 저는 wsl 업데이트 안내창도 안나오고 powershell에서 docker pull nginx를 입력했을때 정상적으로 작동이 됩니다. 이러면 커널 업데이트를 안해줘도 되는건가요?
-
해결됨개발자를 위한 쉬운 도커
Remote JVM Debug Setting
실무에서 도커를 사용하고 있지만 intelliJ 에서 spring app을 실행하고 개발환경을 맞출 수 있다는 생각은 안해봤습니다. 좋은 내용 감사합니다.다만 remote JVM Debug 설정을 추가할 때 before launch 설정중 '+'에서 'Lanch Docker Before Debug' 옵션이 없는데 왜그런걸까요? 확인해주시면 감사하겠습니다. 좋은 하루 되세요
-
미해결비전공자도 이해할 수 있는 쿠버네티스 입문/실전
ECR에서 이미지를 받아오지 못하고있습니다
ECR에서 이미지를 못받아 오는거같습니다... 무슨 문제일까요..NAME READY STATUS RESTARTS AGE spring-deployment-6fdbd9cd87-j8ljj 0/1 ErrImagePull 0 6m1s spring-deployment-6fdbd9cd87-mchqp 0/1 ErrImagePull 0 6m1s spring-deployment-6fdbd9cd87-tp5x6 0/1 ErrImagePull 0 6m1sError from server (BadRequest): container "spring-container" in pod "spring-deployment-6fdbd9cd87-j8ljj" is waiting to start: trying and failing to pull imageEvents: Type Reason Age From Message ---- ------ ---- ---- ------- Normal Scheduled 4m7s default-scheduler Successfully assigned default/spring-deployment-6fdbd9cd87-j8ljj to ip Normal Pulling 70s (x5 over 4m6s) kubelet Pulling image "960452239058.dkr.ecr.ap-northeast-2.amazonaws.com/kube-ecr:1.0" Warning Failed 70s (x5 over 4m6s) kubelet Failed to pull image "960452239058.dkr.ecr.ap-northeast-2.amazonaws.com/kube-ecr:1.0": rpc error: code = NotFound desc = failed to pull and unpack image "960452239058.dkr.ecr.ap-northeast-2.amazonaws.com/kube-ecr:1.0": no match for platform in manifest: not found Warning Failed 70s (x5 over 4m6s) kubelet Error: ErrImagePull Normal BackOff 10s (x15 over 4m5s) kubelet Back-off pulling image "960452239058.dkr.ecr.ap-northeast-2.amazonaws.com/kube-ecr:1.0" Warning Failed 10s (x15 over 4m5s) kubelet Error: ImagePullBackOff 아키텍처 불일치 문제 같은데ARM64용 이미지 빌드 및 푸시를 해서 해결하려니Dockerfile이 없다고ERROR: failed to solve: failed to read dockerfile: open Dockerfile: no such file or directory꼬리에 꼬리를 무는게 뭔가 잘못된방향으로 가는거 같아서 도움이 필요합니다..
-
미해결비전공자도 이해할 수 있는 CI/CD 입문·실전
no basic auth credentials
ECR 생성도 되었고 권한 추가 했고 codeDeploy 성공 했는데 도커 로그인 안된 것 같습니다. 이럴때 어떤 것을 살펴보면 될ㄱ까요?
-
미해결도커 쓸 땐 필수! 도커 컴포즈
개인실습해설 프론트엔드, 백엔드 데이터베이스 방명록
지금 현재 버전의 도커에서는 enviroment도 허용하지 않고 volume이 매핑되지 않은 상태도 허용하지 않네요 업데이트 부탁드립니다.
-
미해결비전공자도 이해할 수 있는 CI/CD 입문·실전
CodeDeploy Amazon Ec2 인스턴스
ec2 러닝 중이고 탄력적 IP 까지 할당 받았는데, 키 , 값 선택이 안 뜰수가 있나요? 만약 안뜨면 그냥 직접 입력 하면 될까요??
-
미해결비전공자도 이해할 수 있는 Docker 입문/실전
로컬과 ec2에서 같이 실행이 안되나요?
기존 로컬에서 mysql+spring 프로젝트에 해당 강의 영상을 보며 적용하고 있었습니다. compose.yml 설정을 하고 application.yml 설정까지 하니 localhost -> my-db 로 바뀌어서 그런지,,로컬에서는 db 연결이 실패했다고 뜨는데요 (ec2 인스턴스에서는 실행 됩니다) 정상적인 것인지 궁금합니다.
-
미해결비전공자도 이해할 수 있는 Docker 입문/실전
application.yml 변경 후 ecr push 시 변경내역 업데이트
스프링부트 기본 포트인 8080에서 80으로 변경하고 싶어. application.yml 설정에서 port:80 변경 후 다시 push 하였는데요. .gradlew clean buildaws 로그인docker compose up -d --builddocker push "url" 그런데 이렇게 이미 존재한 이미지라고 뜹니다. 0e05aa91b84c: Layer already exists 빌드 시 .yml이 변경되면 .jar 파일도 변경되어 이미지가 새로 push되어야 하지 않나요?이 부분 때문에 며칠 고민 하고 있어서 질문드립니다...
-
미해결풀스택을 위한 도커와 최신 서버 기술(리눅스, nginx, AWS, HTTPS, 배포까지) [풀스택 Part3]
풀스택을 위한 도커와 최신 서버 기술(리눅스, nginx, AWS, HTTPS, 배포까지) [풀스택 Part3]
2021_DEV_HTML 파일을 어디에서 다운 받을 수 있을까요?해당 파일이 없어서 실습 진행이 안되고 있습니다.파일을 다운받을 수 있는 링크나 이메일로 보내주시면 감사하겠습니다.ghtjd3795@naver.com
-
미해결대세는 쿠버네티스 (초급~중급편)
Readiness probe warning
[👍좋은 질문을 했을 때 좋은 답변이 돌아 옵니다]1. 실습 중 본인의 환경이 가이드와 다른 부분이 있었다면 말씀해주세요.2. 해당 문제의 발생 빈도(재설치 여부)와 문제 해결을 위해 시도해본 케이스를 말씀해 주시면 원인 파악에 큰 도움이 됩니다.3. 에러 메시지만 봐서는 저도 모르는 경우가 많아요. 그전에 했던 작업이 포함된 캡쳐 화면도 부탁 드려요.4. 영상 내용에 대한 질문 시 해당 시간을 같이 올려 주시면 답변을 드리는 시간이 더 빨라집니다.5. 긴 로그는 제 메일로 보내주세요. (k8s.1pro@gmail.com) 안녕하세요.k8s pod에서 Readiness probe warning: Probe terminated redirects, Response body:xxxprobewarning이 나오는데 이런 경우는 어떤이유일까요??혹시 response code가 200번대 300번가 아닌경우만 실패로 본다고 알고있는데 300이면 실패는 아니지만 warning으로 나타날수있는걸까요?
-
미해결비전공자도 이해할 수 있는 CI/CD 입문·실전
Error: Process completed with exit code 126.
Run ./gradlew clean build2./gradlew clean build3 shell: /usr/bin/bash -e {0}4 env:5 JAVA_HOME: /opt/hostedtoolcache/Java_Temurin-Hotspot_jdk/21.0.7-6/x646 JAVA_HOME_21_X64: /opt/hostedtoolcache/Java_Temurin-Hotspot_jdk/21.0.7-6/x647/home/runner/work/_temp/24e2a6f8-136d-471b-b2ea-6203042af791.sh: line 1: ./gradlew: Permission deniedError: Process completed with exit code 126.찾아보니깐 실행 권한이 없어서 ./gradlew 스크립트를 실행하지 못했다는 뜻이라고 하는데즉, Gradle Wrapper 파일에 실행 권한이 없어서 생긴 문제가 맞을까요? - name: gradlew 실행 권한 부여 run: chmod +x ./gradlew이렇게 붙여줬더니 되긴 하더라고요. 맞는 방법이 몰라서 여쭤봅니다.
-
해결됨개발자를 위한 쉬운 도커
빌드 방식에 대해 질문 있습니다.
빌드 방식 설명에서도커 파일을 작성해서 이미지 빌드 명령을 실행하면도커가 임시 컨테이너를 실행하고 도커 파일에 정의된 작업을 수행 및 커밋하여 새로운 레이어를 생성하고 임시 컨테이너를 삭제한다.이렇게 그림으로 되어있는데,커밋을 했다는게 새로운 레이어가 포함된 이미지를 만들었다는 건가요?임시 컨테이너 생성, 커밋, 임시 컨테이너 삭제가 반복저 과정이 반복되는 거면 지시어 한 문장을 만날 때마다 수행 및 커밋하고 임시 컨테이너 삭제하고를 반복한다고 이해했는데,이러면 지시어가 많을 수록 임시 컨테이너 생성, 삭제가 많이 반복되는 건가요?
-
해결됨비전공자도 이해할 수 있는 CI/CD 입문·실전
EC2 와 CodeDeploy 연결 에러
The overall deployment failed because too many individual instances failed deployment, too few healthy instances are available for deployment, or some instances in your deployment group are experiencing problems.CodeDeploy Agent는 EC2에서 active 상태이고, S3에 업로드도 잘 되었으며, IAM 역할도 다음과 같이 설정했습니다:- EC2 인스턴스 역할: code-deploy-ec2-role (정책: code-deploy-ec2-policy세부 S3)- CodeDeploy 서비스 역할: AWSCodeDeployRole 포함하지만 배포 시 아래와 같은 에러가 납니다:> The overall deployment failed because too many individual instances failed deployment, or too few healthy instances...추가로 EC2 내에서 /var/log/aws/codedeploy-agent/ 로그 폴더가 존재하지 않습니다. appspec.yml 및 start.sh도 정상 포함했고, S3에 .tar.gz도 업로드 확인했습니다.
-
미해결비전공자도 이해할 수 있는 Docker 입문/실전
도커 설치 명령어 (해결 되었습니다. )
안녕하세요. 수업 자료에 있는 도커 설치 명령어를 복사 붙여넣기 했는데 설치가 안되고 command not found 라는 답만 나옵니다. 왜 이러는 걸까요? 감사합니다.
-
미해결비전공자도 이해할 수 있는 Docker 입문/실전
도커 컴포즈 질문있습니다.
안녕하세요.현재 Docker Compose를 활용하여 여러 개의 컨테이너를 다루는 강의를 수강 중입니다. 섹션 6, "Docker Compose를 활용해 2개 이상의 컨테이너 관리하기"의 마지막 파트를 듣고 있습니다.다름이 아니라, 강의를 따라 실습하던 중 궁금한 점이 생겨 이렇게 문의드립니다.현재 Docker 환경에는 DB와 Redis가 구성되어 있는데요,$ ./gradlew clean build$ docker compose down $ docker compose up --build -d위와 같은 순서로 명령어를 실행하였습니다.여기서 ./gradlew clean까지는 이해가 되지만, gradlew build를 실행하면 아직 DB가 연결되지 않은 상태에서 JAR 파일이 빌드되는 것이므로 오류가 발생해야 하는 게 아닌가 하는 의문이 들었습니다.그래서 오히려 docker compose up --build -d 명령어로 컨테이너를 먼저 실행시킨 다음에, ./gradlew clean build를 실행하는 것이 더 맞는 순서가 아닐까 하는 생각이 드는데요.혹시 이에 대해 설명해주실 수 있을까요?감사합니다.
-
해결됨비전공자도 이해할 수 있는 CI/CD 입문·실전
cicd 전과정 잘 들었습니다
안녕하세요! 강의 잘 들었습니다. 저는 여기에 추가로 rds로 db 연결, 그리고 Dockerfile 세팅작업에서 나아가 compose.yml로 nginx,redis 등 세팅 해주려 하는데 그것도 이 기본 세팅 위에서 작업하면 되는건가요..? 감사합니다. 그리고 단일 프로젝트에서는 codedeploy까지는 안해도 괜찮은 건지 궁금하고 추후 무중단 배포로 갈때는 blue/green 이런 전략을 찾아보고 채택하면 되는지 질문드립니다!