티스토리 뷰

728x90

우아한테크코스 프리코스에서는 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

 

도커(Docker) 컨테이너 로케일 설정: 데비안(Debian), 우분투(Ubuntu) 이미지에서 한글 입력 문제

도커 우분투, 데비안 이미지에서는 기본적으로 한글 입력을 지원하지 않습니다. 한글을 입력하기 위해서는 로케일 설정을 UTF-8로 지정할 필요가 있습니다. 이 글에서는 로케일 개념과 함께 도커

www.44bits.io

처음에는 당연히 다른 우분투에서 처럼  /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

빨간색이 아니라 초록색이 보여서 너무 좋다..ㅎ

 

728x90
댓글
공지사항
최근에 올라온 글