#docker-compose

질문 1
해시태그 없이 키워드만 일치하는 질문은 개수에 포함되지 않아요.

5달 전 · 최선호 님의 질문 업데이트

docker에 redis 오류 질문드립니다

안녕하세요 현재 개인프로젝트를 진행하고있습니다. 문제가 있는데, docker에서 app(springboot) + mysql + redis container를 만들어서 docker-compose.yml로 띄운후 localhost:8080 접속시 <오류 내용> Caused by: io.netty.channel.AbstractChannel$AnnotatedConnectException: Connection refused: localhost/127.0.0.1:6379 Caused by: java.net.ConnectException: Connection refused 이렇게 오류가 발생하는데 자꾸 redis가 localhost로 뜨는데 docker-compose 설정에는 문제가 없어보이는데 한번 봐주시면 감사하겠습니다 1. docker-compose.yml - db 접속정보와 redis 비밀번호는 지우고 코드를 올렸습니다 - redis 비밀번호는 서버에서 확인했습니다. - redis-cli 명령어로 ping-pong 확인했습니다. - app안에 redis와 db(mysql) 같은 네트워크 보고있음 확인했습니다. - 외부 접속 허용하기 위해 redis,.conf 에 bind 0.0.0.0수정 확인했습니다. - 맥 방화벽도 껐습니다. 2. application.properties -redis 설정정보에 ${SPRING_REDIS_PORT:6379} 이렇게 바인딩도 해봤습니다 -db접속 되는지 확인해봤습니다 아래의 코드를 첨부했습니다. 구글 검색과 gpt검색으로 해결방안 전부 시도해봤지만 자꾸 localhost로 뜨니까 진척도 없고 답답합니다... docker를 처음 사용해보는거라 부족한점이 많은데 어떤 부분에 이해도가 필요한지 봐주시면 정말 감사하겠습니다.

개발자

#springboot

#redis

#docker

#mysql

답변 0

댓글 0

조회 135

7달 전 · 성지수 님의 새로운 답변

환경변수 주입 및 빌드(모노레포)

모노레포 프로젝트 환경 및 요구사항 - 프로젝트는 front(React), back(Node), common 패키지로 구성되어 있으며, 모노레포로 되어있음 - Dockerfile 스크립트에서는 build → run 순서로 실행되도록 구현되어 있음 - 서버 배포 시에는 하나의 포트만 사용해야 하므로 back(Node)에서 front의 정적 파일(index.html)을 실행해야 함 - Docker 빌드 시, front(webpack 빌드)와 back 둘 다 build 스크립트를 실행하고, 이미지 실행 시에는 back만 run 스크립트를 실행하여 back에서 front의 정적 파일을 실행해야 함 - 환경변수는 이미지 실행 시 docker-compose.yml의 env_file 속성을 사용해 외부에서 주입해야 함(환경변수가 바뀌는 상황이 있다면 .env 파일을 수정한 후 다시 빌드해야 합니다.) 예외 상황 Docker 빌드할 때 .env 파일을 포함하지 않고 run 스크립트를 실행(이미지 실행) 시 주입하는데, front 패키지에는 run 스크립트가 존재하지 않습니다. (back에서 front의 정적 파일을 실행) 즉, 환경변수가 주입되지 않고 있음 해결 방법 첫번째는 back에서 front의 dist 파일 호출 시 환경변수 객체를 만들어 value 값을 key 값으로 치환해서 함께 넘기고, index.html의 head에서 window 객체를 활용해 값을 받는 방법 하지만 이 방법은 개발자 도구에서 환경변수 값이 노출되고, window 객체를 활용하기 때문에 새로운 브라우저를 생성할 때마다 사이드 이펙트가 발생할 수 있음 두번째는 모노레포 root 패키지에서 prerun 스크립트로 front의 build 스크립트를 실행하는 방법 스크립트 -> "prerun": "lerna run build --parallel --scope @projectname/front --stream", 이 방법은 빌드를 두 번 실행하므로 자원을 많이 소모하지만, 예외 상황이 없는 것으로 보임 질문 받은 내용 Q. 환경변수를 바꾸는 상황이 존재할까요? A. 회사의 인프라 환경에 따라 다르지만, 포트나 IP가 변경될 수 있는 상황이 있음 예를 들어, 외부 서버에 요청을 보낼 경우 그 서버의 정보가 바뀌면 설정을 변경해야 하며, 다른 서버에 요청할 때 인증 정보를 입력해야 하는데, 토큰이나 사용자 패스워드 값이 변경될 경우에도 수정이 필요함 고민되는 부분 다른 해결 방법이나 비슷한 상황이 있다면 함께 논의하고 싶습니다. ㅎㅎ *프로젝트 구조 root ├── packages │ ├── back │ │ ├── package.json │ │ ├── index.ts │ │ ├── .babelrc │ │ └── ... │ ├── common │ ├── front │ │ ├── public │ │ │ └── index.html │ │ ├── package.json │ │ ├── src │ │ │ └── index.js │ │ ├── src │ │ ├── webpack.config.js │ │ └── ... ├── package.json ├── lerna.json ├── docker-compose.yml ├── Dockerfile * 프로젝트의 중요 정보는 제외했습니다.

개발자

#환경변수주입

#모노레포

#빌드

#node.js

#react

답변 1

댓글 0

조회 73

7달 전 · 강지원 님의 질문 업데이트

프론트엔드 - Docker-Compose 문제

docker-compose를 세팅 중 빌드 오류가 있어 질문 드립니다. 문제의 원인이 prod 환경의 compose.yml라고 예상되어지는데 dev 환경의 compose에서는 env 파일을 정상 인식하지만 prod 환경의 compose에서는 env 파일을 인식하지 못하는 문제인데요. docker-compose 명령어를 실행할 때, .env 파일이 있는 경로에서 실행을 하고있고 docker-compose.prod.yml과 .env 파일에 정의된 변수 이름도 오탈자는 없습니다. 어떻게 해야 docker build시, prod에서는 args를 사용할 때 production.env(= multiple .env)파일을 인식하게 할 수 있을까요? 혹시 제가 놓치고 있는 부분이 있을까요? 추가로, 관련된 코드와 설정은 Stack Overflow에 업로드를 해뒀는데요, 답변 주시면 정말 감사하겠습니다! https://stackoverflow.com/questions/78857841/docker-compose-not-recognizing-environment-variables-in-next-js-application-pro

개발자

#docker

#docker-compose

#도커

#에러

#프론트엔드

답변 1

댓글 0

조회 66

10달 전 · 신진철 님의 새로운 댓글

SpringBoot와 MySQL 도커 배포 과정에서 계속 오류가 발생합니다.

선배님들 안녕하십니까? 제목 그대로 스프링부트와 MySQL 배포 과정에서 HikariPool-1 - Exception during pool initialization. server-1 | server-1 | java.sql.SQLNonTransientConnectionException: Could not create connection to database server. Attempted reconnect 3 times. Giving up. 위와 같은 오류가 발생합니다. MySQL은 정상적으로 배포가 되어서 접근이 가능한 것을 확인했습니다. 하지만, SpringBoot의 경우, 계속 DB와 연결이 실패합니다. 아래는 SpringBoot의 application.properties 파일과 docker-compose.yml 파일입니다. 한 수 가르쳐주셨으면 합니다. 감사합니다. spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver spring.datasource.url=${SPRING_DATASOURCE_URL} spring.datasource.username=${SPRING_DATASOURCE_USERNAME} spring.datasource.password=${SPRING_DATASOURCE_PASSWORD} spring.jpa.show-sql=true spring.jpa.hibernate.ddl-auto=update spring.jpa.properties.hibernate.format_sql=true

개발자

#오류

#스프링부트

#도커

#mysql

답변 1

댓글 3

조회 341

3달 전 · 문석 님의 새로운 답변

docker-compose를 통해 redis와 boot연결 중 생기는 오류

안녕하세요 백엔드 개발자를 준비중인 대학생입니다. 현재 자바, 스프링부트로, 인텔리제이로 백엔드 개발을 하고 있습니다.(jdk 17) 이번에 프로젝트 중 도커에 대해서 필요성을 느껴 도커를 연결 중에 있습니다. 현재 상황이 db, redis, boot를 docker-compose에 올려서 실행했는데 3개 모두 다 실행은 된 상태입니다.!!!!! db와 boot는 연결이 가능하지만 boot와 redis 연결 중 오류가 뜹니다. 보이는 주 오류는 아래의 2개와 같습니다. org.springframework.data.redis.RedisConnectionFailureException: Unable to connect to Redis Caused by: io.netty.channel.AbstractChannel$AnnotatedConnectException: Connection refused: localhost/127.0.0.1:6379 redis를 직접 실행해보니 localhost로는 정상적으로 실행이 되어 돌아가는데!!!!!!!!!!!!!!! host에 docker-compose에 적은 컨테이너 설정 이름인 redis를 입력하니 위와 같은 오류가 나타납니다.!!!!!!!!! 왜 2번째 오류 문구처럼 Connection refused: localhost/127.0.0.1:6379 라고 뜨는지도 이해가 안가고 구글링을 통해서 계속 찾아봐도 미칠지경까지 와버렸습니다.. 며칠째 이것때매 다른 것을 못하는 상황입니다 ㅜ 아래에 전체적인 코드를 남기겠습니다. 도와주세요!!!!! 제발요... 코드는 redis연결만 문제가 있어 다른 그 부분만 올렸습니다.

개발자

#백엔드

#도커

#redis

#spring

#오류

답변 3

댓글 0

조회 513

일 년 전 · 이승훈 님의 새로운 댓글

도커 세팅 후 docker-compose과 data폴더 깃에 푸시 해도 되나요?

현재 도커 세팅 후 pgAdmin4를 사용해서 DB생성까지 했습니다. 그런데 말입니다. 도커에 관련 파일과 폴더는 어떻게 관리를 해야되나요? .env 파일 처럼 gotignore에서 제외시켜야 되는건가요? 아니면 다른 방식으로 푸시를 진행을 해야 되는건가요?

개발자

#docker-desktop

#prisma

#pgadmin

답변 2

댓글 2

조회 67

2년 전 · 김건호 님의 답변 업데이트

도커를 효율적으로 사용하는 방법?

안녕하세요 선생님들, 도커로 간단한 개발 환경을 만드는 중인데 도커 이미지를 처음 로드할때 Dockerfile 작업이 너무 오래 걸리더라구요. 혹시 Dockerfile 작업을 좀 더 효율적으로 돌리는 방법이 있을까요? 감사합니다. ++ 수정 질문이 명확하지 않았던 점 죄송합니다. 정확히는 root 프로젝트에 docker-compose.yml이라는 파일이 있고 app, server, worker, scheduler 형식의 디렉토리들이 있습니다. 각각의 디렉토리에 Dockerfile이 있는 형태구요. docker-compose.yml에서 services 영역에서 각각 돌아가게끔 구현되어있습니다. 현재 docker-compose와 Dockerfile들 작업을 처음하는 단계여서 스크립트를 여러번 수정하고 테스트하는 과정에서 docker-compose up 커맨드를 통해 Dockerfile들이 빌드될 때, 느린 빌드 속도를 어떻게 하면 좀 더 빠르게 할수 있을까에 대한 고민이었습니다. 매번 컨테이너 지우고, 이미지 지우고, 스크립트 수정하고, 다시 빌드하고 하는게 고통스럽더라구요. 다행히도 개떡같은 질문 내용에 좋은 답변들을 많이 달아주셔서 참고해주신 내용과 링크를 바탕으로 좀 더 학습해보겠습니다. 감사합니다!

개발자

#docker

답변 3

댓글 3

추천해요 4

조회 1,470

2년 전 · 손정현 님의 답변 업데이트

AWS Beanstalk 배포 하기 전에 신경써줘야 할 것이 있나요 ?

현재 nodejs로 백엔드를 구성하고 EB에 배포하는데 몇 가지 오류가 생겨서 질문 드립니다. 프로젝트 구조는 다음과 같습니다. -customer └ .gitignore └ .dockerignore └ src ( 백엔드 코드 ) └ .gitignore └ Dockerfile └ Package.json -product └ customer 와 동일 -shopping └ customer 와 동일 -proxy └ Dockerfile docker-compose.yaml 리전 ap-northeast-2(seoul region) 로컬에서 빌드하고 작동하는 거 확인 후 위 코드를 모두 압축해서 EB에 올렸습니다. EB에 올리기전에 vpc , igw, 등등 미리 생성해줘야 할 게 있나요? 추가로 .gitignore 같은 파일도 같이 올려도 되나요 ? ( 초보라서 질문의 질이 떨어질 수 있지만 고수분들의 너그러운 양해를 부탁드립니다 .ㅠㅠ ) 에러 로그를 보면 1. ELB Fail -> VPC has no internet gateway 2. Stack named 'awseb-e-33wucpgpey-stack' aborted operation. Current state: 'CREATE_FAILED' Reason: The following resource(s) failed to create: [AWSEBV2LoadBalancer, AWSEBInstanceLaunchWaitCondition] 3. LaunchWaitCondition failed. The expected number of EC2 instances were not initialized within the given time. Rebuild the environment. If this persists, contact support.

개발자

#docker

#aws

#nodejs

답변 1

댓글 0

추천해요 1

조회 379