-
Notifications
You must be signed in to change notification settings - Fork 2
Docker
docker를 이용하여 goose-api 환경을 만드는 법에 대하여 소개합니다.
database를 사용하기 위하여 docker를 통하여 mariadb를 띄어서 사용할 수 있습니다.
먼저 다음 명령어로 이미지를 가져옵니다.
docker pull mariadb:latest다음으로 mariadb를 데몬으로 띄우기 위하여 컨테이너를 만듭니다. 환경값으로 mysql root password, database, user, password 같은 정보를 수정해서 실행합니다.
docker run --name goose-api-db \
-e MYSQL_ROOT_PASSWORD=1234 \
-e MYSQL_DATABASE=goose \
-e MYSQL_USER=goose \
-e MYSQL_PASSWORD=1234 \
-p 3306:3306 \
-v `pwd`/data/db:/var/lib/mysql/ \
-d mariadb이것으로 localhost:3306으로 mysql을 사용할 수 있습니다.
만약 컨테이너 속으로 들어가서 직접 확인해보고 싶으면 다음 명령어를 실행하면 됩니다.
docker exec -it goose-api-db /bin/bash
mysql -ugoose goose -p
Enter password: 1234먼저 이 과정을 진행하기전에 저장소를 클론 받습니다.
git clone https://github.com/redgoose-dev/goose-api.git
cd goose-api이 저장소에 있는 내용과 php, composer가 들어있는 환경을 만들기 위하여 다음 명령어로 이미지를 제작합니다.
docker build -t goose-api .이미지 빌드 명령어대로 이미지가 만들어졌으면 이미지의 이름은 goose-api 일것입니다.
컨테이너 만들기전에 .env파일이 꼭 필요하므로 다음 명령어를 한번 실행해줍니다. (goose-api 클론받은 장소라면 사용 가능합니다.)
./script.sh ready다음으로 php-fpm과 php서버를 띄우기 위하여 다음 명령어로 컨테이너를 만듭니다.
docker run --name goose-api \
-v `pwd`/.env:/goose/.env \
-v `pwd`/data/:/goose/data/ \
-p 8000:80 \
--link goose-api-db:mysql \
-d goose-api마지막으로 다음 명령을 실행하여 goose-api를 인스톨합니다.
docker exec goose-api ./script.sh installSuccess install! 이라는 메시지를 볼 수 있다면 성공적으로 인스톨 되었다고 볼 수 있습니다.
이제 브라우저에서 http://localhost:8000 주소로 접속하면 다음과 같은 메시지가 출력된다면 정상적으로 작동되는것을 볼 수 있습니다.
{
"code": 200,
"message": "hello goose api",
"success": true,
"url": "http:\/\/localhost:8000\/",
"time": "5.933ms"
}
그리고 http://localhost:8000/apps로 접속할때 다음과 같은 메시지로 출력된다면 db도 잘 작동된다고 볼 수 있습니다.
{
"code": 401,
"message": "Authorization error : Not found `Authorization` in header",
"success": false,
"url": "http:\/\/localhost:8000\/apps",
"time": "5.623ms"
}
이전 섹션의 예제는 goose-api 저장소를 클론받은 장소에서 진행하는 예제였습니다. 하지만 다른 장소에서 사용하려면 별도로 준비를 해줘야하는것들이 있습니다.
docker pull redgoose/goose-api다음과 같은 형태로 파일과 디렉토리를 만드세요.
/data-
/data/upload: 권한은707 -
/data/.env: 예제참고 (https://github.com/redgoose-dev/goose-api/blob/master/resource/.env.example)
다음 스크립트를 명령을 실행하여 쉽게 디렉토리와 설정파일들을 만들 수 있습니다.
curl -O https://raw.githubusercontent.com/redgoose-dev/goose-api/master/script.sh
chmod 755 script.sh
./script.sh init-docker
rm script.sh다음 명령을 실행하여 컨테이너를 만드세요.
docker run --name goose-api \
-v `pwd`/data/.env:/goose/.env \
-v `pwd`/data/upload:/goose/data/upload \
-p 8000:80 \
--link goose-api-db:mysql \
-d redgoose/goose-api컨테이너가 띄어졌으면 다음 명령어로 goose-api를 인스톨 합니다.
docker exec goose-api ./script.sh installredgoose/goose-api와 같은 경로는 자유롭게 변경하세요.
docker build -t redgoose/goose-api .
docker push redgoose/goose-api