spring.config.activate.on-profile=production
spring.datasource.url=jdbc:${DATABASE_URL}
brew install fly
fly
fly apps
fly apps list
brew install --cask docker
터미널을 켜서 내 백엔드 프로젝트가 있는 위치로 이동해준다.
fly postgres create
마지막에 나오는 URI는 기록해두어야 한다.
touch Dockerfile
FROM eclipse-temurin:17
WORKDIR /u/myapp
COPY build/libs/*[^plain].jar ./
CMD java -Dserver.port=8080 -Dspring.profiles.active=production -jar *.jar
./gradlew clean bootJar
docker build -t f4t2-spring .
-- 잘 됐는지 확인 --
docker run --rm -it -p 8080:8080 f4t2-spring bash
ls -al
java -Dserver.port=8080 -jar *.jar
fly launch
여기서 .dockerignore 파일을 만들거냐는 질문에 yes로 답한다면 jar 파일 빌드 후 docker 이미지를 생성하는 과정에서 쓰이는 파일이 ignore 되는 것은 아닌지 잘 확인해야 한다.
Fly에 App 추가됨. (https://fly.io/dashboard)
fly.toml 설정 파일 만들어짐. (포트 번호 등을 변경할 수 있다.)
fly deploy
아까 기록해둔 URI를 가져온다.
fly secrets set DATABASE_URL="postgresql://호스트이름:5432/postgres?user=유저이름&password=비밀번호"
fly 홈페이지의 Dashboard 들어가서 Secrets이 잘 세팅됐는지 확인한다.
배포 도중 Out of memory 오류가 발생했다면? fly scale 올리기!
https://fly.io/docs/apps/scale-machine/#select-a-preset-cpu-ram-combination
fly scale show
fly scale memory 512
배포가 실패했다면?
원인을 수정한 뒤 fly deploy를 해주면 된다.
안녕하세요! 포스트 잘 읽었습니다!
혹시 SpringBoot와 PostgreSQL을 연동하고 배포한 서버에서
FATAL: password authentication failed for user "postgres"
이러한 에러는 만난 경험이 없으신지 여쭤보고 싶습니다...