User Tools

Site Tools


docker:coachtown

This is an old revision of the document!


Coachtown Docker

코치타운 서비스를 위한 도커 설치. 조금 수정하여 django app 서비스에도 사용할 수 있다.

1. install docker

sudo apt-get install docker.io

2. Dockerfile

Dockerfile의 ADD 명령을 이용하여, 호스트에 있는 코드와 설정파일을 도커 이미지에 집어 넣는다.

FROM debian 
MAINTAINER Donghee Park <dongheepark@gmail.com>

RUN apt-get update
RUN apt-get install -y nginx python python-pip procps sudo
#RUN echo "\ndaemon off;" >>/etc/nginx/nginx.conf
RUN echo "Asia/Seoul" > /etc/timezone && dpkg-reconfigure -f noninteractive tzdata
RUN echo 'root:xxxx' | chpasswd

#ADD index.html /usr/share/nginx/www/index.html
RUN mkdir /coachtown

WORKDIR /coachtown
ADD requirements.txt /coachtown/
RUN pip install virtualenv
RUN pip install -r requirements.txt
ADD ./ /coachtown/
ADD conf/www.coachtown.org /etc/nginx/sites-enabled/default

EXPOSE 80

3. build Docker image

cat scripts/docker_build.sh

sudo docker build -t coachtown:nginx .

4. run Docker container

도커 컨테이서 생성.

데이터 베이스 볼륨: 데이터 베이스가 호스트에 있는 파일을 쓰도록 하기 위해서 volume을 연결하여 컨테이너에서 호스트의 데이터 베이스 파일을 쓰도록 한다.

컨테이너는 백그라운드로 돌리고 docker exec로 서버 실행 스크립트를 실행한다. 음 왜그러는지 이유는 못찾았는데, Dockerfile에서 부터 서버 실행이 잘 안된다. (튜토리얼은 그렇게 하던데)

기존의 컨테이너를 삭제하고, 새 컨테이너를 실행 한다. cat scripts/docker_run.sh

HOSTDIR=$(pwd)/database
DOCKERDIR=/database

CONTAINERID=$(sudo docker ps -q)
sudo docker kill $CONTAINERID
sudo docker rm $CONTAINERID

# background option -d
sudo docker run -v $HOSTDIR:$DOCKERDIR -p 80:80 -d -i -t coachtown:nginx $@
# exec
CONTAINERID=$(sudo docker ps -q)
sudo docker exec -it $CONTAINERID /coachtown/restart.sh
docker/coachtown.1420482298.txt.gz · Last modified: 2018/07/18 14:09 (external edit)