뒤로가기
docker+php8+nginx
# Dockerfile for Ubuntu: Nginx + PHP 8.1 + Composer + SSH + systemd
FROM ubuntu:22.04
# 비대화형 모드 및 기본 환경변수 설정
#ENV LANG=en_GB.UTF-8
ENV TZ=Asia/Seoul
#ENV php_conf=/etc/php/8.1/fpm/php.ini
LABEL maintainer="jun2642@gmail.com" \
title="docker utuntu + nginx + php8" \
description="Ubuntu + Nginx + PHP 8.1 + Composer + SSH" \
version="0.1"
# 타임존 설정
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone
# apt 소스 변경: vim 설치 후, 기본 소스를 ftp.daumkakao.com으로 변경
RUN apt-get update && \
apt-get install -y vim && \
sed -i 's/archive.ubuntu.com/ftp.daumkakao.com/g' /etc/apt/sources.list && \
apt-get update
# 시스템 업데이트 및 필수 패키지 설치
RUN apt-get install -y --no-install-recommends \
systemd \
nginx \
php8.1 \
php8.1-cli \
php8.1-fpm \
php8.1-redis \
php8.1-intl \
php8.1-gd \
php8.1-mbstring \
php8.1-mysql \
php8.1-xml \
php8.1-zip \
php8.1-bcmath \
php8.1-soap \
php8.1-ldap \
php8.1-xdebug \
unzip \
curl \
openssh-server && \
apt-get clean && rm -rf /var/lib/apt/lists/*
# SSH 기본 설정 (필요 시 추가 설정 가능)
RUN mkdir /var/run/sshd
# Composer 설치 (SSL 검증 비활성화 옵션 -k 적용)
RUN curl -k -sS https://getcomposer.org/installer -o composer-setup.php && \
HASH="$(curl -k -sS https://composer.github.io/installer.sig)" && \
php -r "if (hash_file('sha384', 'composer-setup.php') === '$HASH') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); exit(1); } echo PHP_EOL;" && \
php composer-setup.php --install-dir=/usr/local/bin --filename=composer && \
rm composer-setup.php
# systemd 환경에서 Nginx, PHP8.1-FPM, SSH가 자동으로 시작되도록 서비스 활성화
RUN systemctl enable nginx && \
systemctl enable php8.1-fpm && \
systemctl enable ssh
# 필요한 포트 노출 (HTTP, HTTPS, SSH 및 기타 지정 포트)
EXPOSE 80 443 22 3000
CMD ["/bin/bash"]
#docker-compose.yml
version: '3'
services:
web:
container_name: blog
privileged: true
build:
context: .
dockerfile: ./Dockerfile
stdin_open: true
tty: true
ports:
- "10080:80"
- "10443:443"
- "10022:22"
- "10030:3000"
volumes:
- ./www:/var/www
- ./home:/home