이슈1
현재 사용하고 있는 맥북은 M2프로이다. aws 리눅스 서버에 배포 시 문제점
현재 맥환경 arm64 / But, AWS Linux amd 64
환경 차이 발생 !!!!

단일 도커 이미지를 빌드하는 경우 해결방법 (택 1)
1번, 환경 변수 설정
export DOCKER_DEFAULT_PLATFORM=linux/amd64
2번, Dockerfile FROM명령에 플래그 포함
FROM --platform=linux/amd64 amazoncorretto:17
도커 컴포즈로 빌드하는 경우 해결방법
platform: linux/amd64 를 각 서비스에 포함시킨다.
version: "3"
services:
frontend:
platform: linux/amd64 # <-
build: frontend
ports:
- 80:80
depends_on:
- backend
backend:
platform: linux/amd64 # <-
build: backend
이슈2
원인 - db연결 주소 중 호스트 이름을 ‘localhost’로 보기 때문에 생긴 문제
해결 - 컨테이너가 분리되어 있으므로 localhost가 아닌 service명을 기재해주어야 함
docker-compose를 작성하고 build를 하는 도중,
컨테이너까지 잘 생성하고 port 번호도 맞는데 계속해서 DB 연결을 실패했다.
port 번호도 바꾸고 이것저것 시도하던 중에 DB 연결 주소 중 ‘localhost’가 문제라는 것을 알게되었다.
app과 db의 환경이 컨테이너로 분리되어 있으므로 이제 'localhost'는 잘못된 호스트인 것이다.
service 이름 확인 방법
# docker-compose.yml
version: "3"
services:
...
mysql: # <- 요거
platform: linux/amd64
image: mysql:8
ports:
- 3306:3306
environment:
MYSQL_DATABASE: MY_SQL_DB
MYSQL_ROOT_PASSWORD: root
MySQL_ROOT_HOST: '%'
networks:
- network
수정 예시
# localhost -> mysql(위에서 확인한 서비스 이름)
jdbc:mysql://localhost:3306/electronic_post?useSSL=false&serverTimezone=Asia/Seoul&allowPublicKeyRetrieval=true
>>>
jdbc:mysql://mysql:3306/electronic_post?useSSL=false&serverTimezone=Asia/Seoul&allowPublicKeyRetrieval=true
Docker: Is the server running on host "localhost" (::1) and accepting TCP/IP connections on port 5432?
I am getting issues while setup and run the docker instance on my local system with Ruby on Rail. Please see my docker configuration files:- Dockerfile FROM ruby:2.3.1 RUN useradd -ms /bin/bash ...
stackoverflow.com
'TroubleShooting' 카테고리의 다른 글
| tomcat port번호 강제로 죽이기 (0) | 2024.04.17 |
|---|---|
| npm 오류 해결 (0) | 2024.02.26 |
| Json에서 @ModelAttribute 오류 (2) | 2023.12.07 |
| typescript 관련 trouble shooting (0) | 2023.12.01 |
| 맥 Intellij에서 마우스를 클릭했을 때, 클릭이 되지않는 이슈 (0) | 2023.12.01 |