2023. 06. 28 (wed) 학습정리
#Docker #httpd #dockerfile
1. Apache HTTPD 구축하기
apache의 오픈소스 웹 서버
- 개요
✔ webpage를 구현해놓은 git repository를 clone 후 해당 page를 띄우기
- webpage에 대한 기본 경로는 htdocs/index.html 파일이므로 기존의 htdocs 폴더 삭제 후 새로운 htdocs 폴더에 git clone
✔ crontab을 활용하여 매분마다 git pull 실행하여 변경사항을 주기적으로 갱신
- blog-pull-cronjob : pull.sh 파일을 매분마다 실행하는 crontab 작업 명시
- pull.sh : git pull 작업 명시
2. dockerfile 생성
- docker image pull
docker pull httpd:2.4.57
- dockerfile/httpd 경로에 파일 생성
📌 Dockerfile
FROM httpd:2.4.57
RUN ["apt-get", "update"]
RUN ["apt-get", "install", "-y", "vim"]
RUN ["apt-get", "install", "-y", "vim"]
RUN ["apt-get", "install", "-y", "git"]
RUN ["rm","-rf","/usr/local/apache2/htdocs"]
RUN ["git", "clone", "https://github.com/...", "/usr/local/apache2/htdocs"]
RUN ["apt-get", "install", "-y", "cron"]
COPY ["pull.sh", "/usr/local/apache2/htdocs/"]
COPY ["blog-pull-cronjob", "/etc/cron.d/blog-pull-cronjob"]
RUN crontab /etc/cron.d/blog-pull-cronjob
# Just once at the end
CMD service cron start;httpd-foreground
📌 pull.sh
echo "start pull-->"
date "+%Y-%m-%d %H:%M:%S"
cd /usr/local/apache2/htdocs
git pull
echo "<--end pull"
📌 blog-pull-cronjob
* * * * * sh /usr/local/apache2/app/blog/pull.sh >> /var/log/pull.log 2>&1
3. docker build
- httpd-blog:1.1.0 이미지 생성
docker build -t httpd-blog:1.1.0 docker_file/httpd/
- kabs-0 컨테이너 생성
docker run -dit --name kabs-0 -p 8050:80 httpd-blog:1.1.0;docker logs -f kabs-0
- web server 접속 : localhost:8050

'💻 Dev > Stu' 카테고리의 다른 글
| [Docker] Nginx + httpd를 활용하여 Load Balancing 구현하기 (0) | 2023.07.03 |
|---|