티스토리 뷰
우아한테크코스 프리코스에서는 JDK 1.8 버전 사용을 권고하고 있다. 하지만 내 노트북의 JDK는 버전 11을 쓰고 있고 현재 Spring Boot로 개발 중인 mnm 프로젝트에서 이 JDK11을 사용하고 있기 때문에 혹시 몰라 노트북의 환경을 JDK1.8로 변경하기가 두려워 JDK1.8을 설치한 도커 컨테이너를 생성해 해당 환경에서 미션 프로젝트를 테스트해보려한다.
🍑 도커 이미지 생성
도커 버전 확인
D:\woowacourse\docker-jdk8> docker -v
Docker version 20.10.8, build 3967b7d
도커 파일 생성 (Dockerfile)
FROM ubuntu
RUN apt-get update
RUN apt-get install -y openjdk-8-jdk
RUN echo "jdk 8 install completed"
도커 파일을 이용해 이미지 생성
현재 위치의 파일에서 Dockerfile을 읽어서 도커 "ubuntu_jdk8:0.1"이라는 이름의 도커 이미지를 생성한다. (기존에 생성되어 있는 이미지가 있으면 삭제한다.)
D:\woowacourse\docker-jdk8> docker build --force-rm --tag ubuntu_jdk8:0.1 .
도커 이미지 생성 확인
D:\woowacourse\docker-jdk8> docker images
🍑 도커 컨테이너 생성
생성한 이미지를 이용해 도커 컨테이너 생성
D:\woowacourse\docker-jdk8> docker run -d --name=woowacourse ubuntu_jdk8:0.1
184434da2ac3aaff14d582599060c95d593d8dadcfb7243d0137cdecab833f1e
도커 컨테이너 생성 확인
D:\woowacourse\docker-jdk8> docker ps -a
🍑 프로젝트 테스트
도커 컨테이너 실행, 접속
D:\woowacourse\docker-jdk8> docker run -it --name woowacourse_jdk8 ubuntu_jdk8:0.1 /bin/bash
JDK 버전 확인
root@fc3cb1a0724f:/# java -version
openjdk version "1.8.0_292"
OpenJDK Runtime Environment (build 1.8.0_292-8u292-b10-0ubuntu1~20.04-b10)
OpenJDK 64-Bit Server VM (build 25.292-b10, mixed mode)
git 설치
root@fc3cb1a0724f:/# apt-get install git
프로젝트 clone
해당 repository의 ririhan branch의 내용을 clone 해온다.
root@fc3cb1a0724f:~# git clone -b ririhan https://github.com/RIANAEH/java-baseball-precourse.git
프로젝트 테스트
root@fc3cb1a0724f:~/java-baseball-precourse# ./gradlew clean test
❌ test error #1 ❌
코드 상의 문제가 있다고 생각하여 해당 내용을 수정하여 다시 테스트 해보았다.
변경사항 pull
root@fc3cb1a0724f:~/java-baseball-precourse# git pull
다시 프로젝트 테스트
root@fc3cb1a0724f:~/java-baseball-precourse# ./gradlew clean test
❌ test error #2 ❌
이번에는 코드상의 문제는 아니라고 생각하였다.
보면 한글로 되어있는 부분이 깨져 나오기에 일단 이 부분을 해결해보기로 하였다.
📌 도커(Docker) 컨테이너 로케일 설정: 데비안(Debian), 우분투(Ubuntu) 이미지에서 한글 입력 문제 | 44BITS
처음에는 당연히 다른 우분투에서 처럼 /etc/default/locale 파일을 변경하여 적용해주면 될 것이라고 생각하여 진행했다가 계속 적용이 안돼서 눈물날뻔 했다ㅠㅠ 알고보니 도커에서 우분투를 사용할 경우 설정을 다른 방식으로 해야한다고 위의 블로거분께서 적어두셔서 겨우겨우 해결했다ㅠㅠ 감사합니다.
우분투 언어 설정 확인
보면 영어로 설정되어있기 때문에 이를 한국어로 변경해주어야한다.
# locale
locales 패키지 설치
localedef, locale-gen, update-locale과 같은 locale 관련 명령어들을 사용할 수 있다.
# apt-get update
# apt-get install locales
Reading package lists... Done
Building dependency tree
Reading state information... Done
locales is already the newest version (2.31-0ubuntu9.2).
locales set to manually installed.
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
사용 가능한 언어 확인
# cat /usr/share/i18n/SUPPORTED
locale-gen으로 원하는 locale 생성
# locale-gen ko_KR.UTF-8
Generating locales (this might take a while)...
ko_KR.UTF-8... done
Generation complete.
생성 확인
# locale -a
locale: Cannot set LC_CTYPE to default locale: No such file or directory
locale: Cannot set LC_MESSAGES to default locale: No such file or directory
locale: Cannot set LC_COLLATE to default locale: No such file or directory
C
C.UTF-8
POSIX
ko_KR.utf8
LC_ALL 환경변수 정의
# export LC_ALL=ko_KR.UTF-8
변경 적용 확인
# locale
LANG=en_US.UTF-8
LANGUAGE=
LC_CTYPE="ko_KR.UTF-8"
LC_NUMERIC="ko_KR.UTF-8"
LC_TIME="ko_KR.UTF-8"
LC_COLLATE="ko_KR.UTF-8"
LC_MONETARY="ko_KR.UTF-8"
LC_MESSAGES="ko_KR.UTF-8"
LC_PAPER="ko_KR.UTF-8"
LC_NAME="ko_KR.UTF-8"
LC_ADDRESS="ko_KR.UTF-8"
LC_TELEPHONE="ko_KR.UTF-8"
LC_MEASUREMENT="ko_KR.UTF-8"
LC_IDENTIFICATION="ko_KR.UTF-8"
LC_ALL=ko_KR.UTF-8
하지만 현재 셸에서는 한글 입력이 되지 않는다. 이를 위해서는 셸을 새로 생성해야한다.
LC_ALL 환경변수 정의 및 shell 새로 생성
# LC_ALL=ko_KR.UTF-8 bash
shell에 한글 입력 확인
# echo "안녕하세요."
안녕하세요.
프로젝트 다시 테스트
드디어 프로젝트 테스트 성공... 눈물날 것 같다.
# ./gradlew clean test
Starting a Gradle Daemon, 1 incompatible Daemon could not be reused, use --status for details
BUILD SUCCESSFUL in 10s
4 actionable tasks: 4 executed
'Backend' 카테고리의 다른 글
MVC 패턴 (0) | 2021.12.01 |
---|---|
[우아한테크코스/프리코스] Java Code Conventions를 IntellJ에 적용하기 (1) | 2021.11.28 |
[우아한테크코스/프리코스] Java Code Conventions (2) | 2021.11.28 |
[우아한테크코스/프리코스] Commit Message Conventions (0) | 2021.11.27 |