나는 docker compose 파일을 통해 ec2에서 Nginx, springboot, redis 총 3개의 컨테이너를 띄웠다. Redis는 로그인과 로그아웃 기능을 위해 필히 스프링부트와 연동이 되어야하는 상황이었다. 일단 docker ps 명령을 통해 Nginx, springboot, Redis 가 모두 돌아가는 것을 확인하였고, docker exec -it redis-cli 명령어를 통해 레디스에 접근하고 ping 명령어를 통해 제대로 작동하는지 여부또한 체크하였다. 근데!! 포스트맨을 통한 로그인 API를 테스트하려고 할 때마다 자꾸 레디스와 연결이 안되는 오류가 발생하였다. 구글링을 해보니 간단히 해결법을 찾았다. spring: data: redis: host: redis port: 6379 ..
docker
나의 스프링부트 프로젝트를 도커 이미지로 만들었고 이 이미지를 도커 허브에 push하고 싶어서 아래 명령어를 실행했다. docker push fxteam:1.0 결과는? 왜이러니,,,,,? 찾아보니 크게 두가지 이유가 있다고 한다. 1. Docker Hub에 로그인 하지 않은 경우 난 로그인이 됐으니 이 문제는 아니다. 2. Docker Hub에 로그인 한 ID와 도커 이미지의 유저 ID가 다른 경우 이 문제였다. docker images 이미지 조회 명령어를 통해서 확인해보니 도커 이미지의 유저 ID가 로그인 한 ID와 달랐다. 이를 tag명령어를 이용하여 다시 만들어줄 수 있지만 나는 이미지를 다시 만들었다! docker hub에서 이미지가 push된걸 볼 수 있다.
docker와 친해지기 위해서 기존에 jar파일을 ec2에 올려놓고 사용하던 방식에서 docker를 이용하는 방식으로 변경하려고 한다. FROM openjdk:17 ARG JAR_FILE=build/libs/fxteam-0.0.1-SNAPSHOT.jar COPY ${JAR_FILE} app.jar ENTRYPOINT ["java", "-jar", "app.jar"] Dockerfile은 위와 같이 구성하였고 이를 이미지로 빌드하기 위해 docker build --platform linux/amd64 -t fxteam:1.0 . 위와 같은 빌드 명령어를 실행하였다. --plateform linux/arm64 명령어는 현재 m1 mac을 사용중에 있는데 m1 mac에서 빌드하게 될 경우 자동으로 platfo..