본문 바로가기
IT/기타

Dockerfile 작성 예시

by JGSHIN 2025. 2. 17.
SMALL

 

=================================================================================================

 

# 베이스 이미지로 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

 

 

=================================================================================================

 

 

 

LIST

'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
📧 이메일 문의
by @ 2025 JGSHIN