I leaned/Etc
도커 배포시 파일 경로
윤재에요
2023. 9. 15. 01:11
로컬에 파일을 저장을 할 시에는 경로를 주로 절대경로로 저장을 한다.
이러한 방식은 배포시 문제를 일으킨다. 배포환경에 맞는 경로를 설정해주어야 한다.
OS에 따라 separator를 설정해주고 경로를 클래스패스를이용하거나 직접 작성을 해주어야 한다.
이 글에서는 도커배포시 외부가 아닌 도커환경에 파일을 저장시킬떄 경로 설정 방법이다.
도커환경의 저장공간을 확인해보면 아래와 같다.

최상위폴더는 /이다. 기본적으로 리눅스환경이기에 separator는 /를 사용한다.
위 사진에서는 /app 디렉토리에 static/images/structure 디렉토리를 생성한 것이다.
그래서 코드작성시 경로를 아래와 같이 작성해야한다. /app 으로 시작하거나 /usr/src/app 으로 시작할 것이다.
public byte[] structureImageFind(String code) {
File file = new File("/app/static/images/structures/"+code+".png");
try {
return Files.readAllBytes(file.toPath());
} catch (IOException e) {
throw new RuntimeException(e);
}
}