=================================================================================================
# 베이스 이미지로 Ubuntu를 지정한다.
FROM ubuntu:14.04
# Dockerfile 작성자에 대한 정보를 기록한다.
MAINTAINER "jeong.gon <ruo3832@gmail.com>"
# 생성하는 이미지에 대한 설명을 작성한다.
LABEL title "Iac, PHP aplication"
# 필요한 패키지를 설치한다.
# 주의! Ubuntu 이미지를 베이스 이미지로 지정하는 경우 반드시 apt- get update를 우선 수행해야만 다른 패키지 설치가 가능하다
RUN apt-get update && apt-get -y install apache2 php5 git curl ssh wget
# 아파치2의 환경 변수를 지정한다. 아래 설정값은 아파치2의 기본값이다.
ENV APACHE2_RUN_USER www-data
ENV APACHE2_RUN_GROUP www-data
ENV APACHE2_LOG_DIR /var/log/apache2
ENV APACHE2_WEB_DIR /var/www/html
ENV APACHE2_PID_FILE /var/run/apache2/apache2.pid
# 기본 웹 페이지를 생성한다.
RUN echo 'Hello, Docker Application.' > /var/www/html/index.html
# 테스트 PHP 웹 페이지를 생성한다.
RUN echo '<?php phpinfo(); ?>' > /var/www/html/index.php
# 80번 포트를 노출한다.
EXPOSE 80
# RUN, CMD, ENTRYPOINT의 명령어가 실행되는 디렉터리를 설정한다.
WORKDIR /var/www/html
# 이미지가 컨테이너로 실행될 때 아파치 서비스를 자동으로 실행되게 한다.
CMD ["/usr/sbin/apache2ctl", "-D", "FOREGROUND"]
=================================================================================================
FROM ubuntu:18.04
RUN apt-get update
RUN apt-get -y install python
=================================================================================================
# 베이스 이미지
FROM ubuntu:latest
# 작성자 정보
MAINTAINER "jgshin <ruo3830@gmail.com>"
# 필요한 패키지를 작성
RUN apt-get update && apt-get install -y nginx curl vim
# nginx 기본 웹 페이지를 생성
RUN echo 'Docker Container Application.' > /var/www/html/index.html
# 80번 포트를 노출한다.
EXPOSE 80
# 컨테이너로 실행될 때 nginx 데몬을 자동 실행한다.
CMD ["nginx", "-g", "daemon off;"]
=================================================================================================
FROM python:3.9.2-alpine
RUN apt-get update && apt-get -y install python-pip
RUN pip install -r requirements.txt
COPY app.py /app
CMD python /app/app.py
=================================================================================================
# 베이스 이미지
FROM ubuntu:18.04
# 아파치2 패키지를 설치
RUN apt-get update && apt-get -y install apache2
# 웹 기본 페이지를 생성
RUN echo 'Docker Container Application.' > /var/www/html/index.html
# 필요한 작업 경로를 생성한다.(WORKDIR로 지정해도 됨)
RUN mkdir /webapp
# 아파치2에 필요한 환경 변수, 디렉터리, 서비스 실행 등의 정보를 셀 스크립트에 작성하고 실행 권한을 부여한다.
RUN echo '. /etc/apache2/envvars' > /webapp/run_http.sh
RUN echo 'mkdir -p /var/run/apache2' >> /webapp/run_http.sh
RUN echo 'mkdir -p /var/lock/apache2' >> /webapp/run_http.sh
RUN echo '/usr/sbin/apache2 -D FOREGROUND' >> /webapp/run_http.sh
RUN chmod 744 /webapp/run_http.sh
# 80번 포트를 오픈한다.
EXPOSE 80
# RUN 명령어로 작성된 셀 스크립트를 컨테이너가 동작할 때 실행한다.
CMD /webapp/run_http.sh
=================================================================================================
# 베이스 이미지
FROM ubuntu:14.04
# 작성자 정보
MAINTAINER " jgshin <jeong.hpe@gmail.com>"
# 이미지 설명 정보
LABEL "purpose"="container web application practice."
# 다운로드한 웹 소스 압출 파일을 아파치의 기본 웹 페이지 경로에 복사한다.
# ADD 명령어는 압축 파일을 해제하여 경로에 복사하는 장점이 있다.
ADD webapp.tar.gz /var/www/html
# 해당 경로로 이동한다. 컨테이너 기본경로 지정
WORKDIR /var/www/html
# 컨테이너 포트를 열어준다.
EXPOSE 80
# 컨테이너 실행 시 자동으로 아파치 데몬을 실행한다.
CMD /usr/sbin/apachectl -D FOREGROUND
=================================================================================================
'IT > 기타' 카테고리의 다른 글
Docker-compose 작성 예시 (0) | 2025.02.17 |
---|---|
Docker-compose 설치 방법 (0) | 2025.02.17 |
Dockerfile 작성 예시 - 2 (0) | 2025.02.17 |
Docker 커맨드 - 2 (0) | 2025.02.17 |
Docker 커맨드 - 1 (0) | 2025.02.17 |