
드디어 도커 컨테이너를 활용해서 테스트코드를 작성해보자.
로컬에서 db를 비우고, 테스트하고, 다시 비우면 너무 일이 많으므로, test시도시에 컨테이너를 띄우고, 모든 테스트를 완료한 후에 컨테이너를 내리는 식으로 테스트를 진행할 것이다.
일단 docker-compose.yml을 작성해서 mySQL 컨테이너를 하나 띄워주자
version: '3'
services:
mySQLContainer:
image: mysql
container_name: mySQLContainer
command:
- --default-authentication-plugin=mysql_native_password
- --character-set-server=utf8
- --collation-server=utf8_general_ci
ports:
- 3307:3306
environment:
MYSQL_ROOT_PASSWORD: '${DB_PASSWORD}'
MYSQL_DATABASE: friending_test_db
MYSQL_USER: donggil
MYSQL_PASSWORD: '${DB_PASSWORD}'
version
도커 컴포즈의 버전정보이다.
버전마다 약간씩 추가 기능이라던지 그런게 다르다고 한다.
services
컨테이너 각 하나를 뜻한다.
서비스 이름과 도커 컨테이너 이름은 무관하다.
mySQLContainer
서비스의 이름이다. 도커 컨테이너 이름과는 관련은 있으나 이거 그대로 들어가진 않는다.
container_name으로 별도로 설정할 수 있다.
설정하지 않으면 services이름_db이름_1 이런식으로 컨테이너가 생성되니 주의하자!
image
mysql을 쓰겠다는뜻
command
컨테이너의 세부 설정을 조작한다.
--default-authentication-plugin=mysql_native_password
이전 버전의 암호화방식을 사용하겠다는 뜻이다.
--character-set-server=utf8
--collation-server=utf8_general_ci
안해주면 한글이 깨져서 이렇게 설정해주었다.
ports: - 3307:3306
호스트포트(외부포트):내부포트이다.
mysql은 3306이므로 오른쪽은 고정해주자.
(둘다 3307로 했다가 고생좀했다.)
environment
mysql 의 db, user설정이다.
.env내부 파일을 읽어올 수 있다!
쉘스크립트 문법을 따르는 것으로 보인다.
다 작성했다면
docker-compose -f ./docker-compose.yml up -d
로 도커 컨테이너를 띄워주자.
docker ps
요걸로 잘띄워졌는지 확인해보자.
일을 마쳤다면
docker-compose down
를 통해 컨테이너를 삭제해주자.

드디어 도커 컨테이너를 활용해서 테스트코드를 작성해보자.
로컬에서 db를 비우고, 테스트하고, 다시 비우면 너무 일이 많으므로, test시도시에 컨테이너를 띄우고, 모든 테스트를 완료한 후에 컨테이너를 내리는 식으로 테스트를 진행할 것이다.
일단 docker-compose.yml을 작성해서 mySQL 컨테이너를 하나 띄워주자
version: '3'
services:
mySQLContainer:
image: mysql
container_name: mySQLContainer
command:
- --default-authentication-plugin=mysql_native_password
- --character-set-server=utf8
- --collation-server=utf8_general_ci
ports:
- 3307:3306
environment:
MYSQL_ROOT_PASSWORD: '${DB_PASSWORD}'
MYSQL_DATABASE: friending_test_db
MYSQL_USER: donggil
MYSQL_PASSWORD: '${DB_PASSWORD}'
version
도커 컴포즈의 버전정보이다.
버전마다 약간씩 추가 기능이라던지 그런게 다르다고 한다.
services
컨테이너 각 하나를 뜻한다.
서비스 이름과 도커 컨테이너 이름은 무관하다.
mySQLContainer
서비스의 이름이다. 도커 컨테이너 이름과는 관련은 있으나 이거 그대로 들어가진 않는다.
container_name으로 별도로 설정할 수 있다.
설정하지 않으면 services이름_db이름_1 이런식으로 컨테이너가 생성되니 주의하자!
image
mysql을 쓰겠다는뜻
command
컨테이너의 세부 설정을 조작한다.
--default-authentication-plugin=mysql_native_password
이전 버전의 암호화방식을 사용하겠다는 뜻이다.
--character-set-server=utf8
--collation-server=utf8_general_ci
안해주면 한글이 깨져서 이렇게 설정해주었다.
ports: - 3307:3306
호스트포트(외부포트):내부포트이다.
mysql은 3306이므로 오른쪽은 고정해주자.
(둘다 3307로 했다가 고생좀했다.)
environment
mysql 의 db, user설정이다.
.env내부 파일을 읽어올 수 있다!
쉘스크립트 문법을 따르는 것으로 보인다.
다 작성했다면
docker-compose -f ./docker-compose.yml up -d
로 도커 컨테이너를 띄워주자.
docker ps
요걸로 잘띄워졌는지 확인해보자.
일을 마쳤다면
docker-compose down
를 통해 컨테이너를 삭제해주자.