Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
Tags
- Math.max
- Integer
- 1level
- 프로시저
- 배열
- string
- substring
- Linux
- SQL
- Java
- 1단계
- Math.min
- PARSEINT
- oracle
- 데이터베이스
- 1lv
- 코딩테스트
- 프로그래머스
- 오라클
- 참조형
- 짝수
- toLowerCase
- programmers
- 문자열
- 1레벨
- 자바
- 디비
- 코테
- 알고리즘
- StringBuffer
Archives
- Today
- Total
웹 프로그래밍
Docker를 이용하여 로컬 환경 구축 및 PHP 개발 셋팅 본문
1. Docker Desktop 설치
- Docker Desktop이 설치되어 있지 않다면, Docker 공식 사이트에서 설치 파일을 다운로드하여 설치하세요.
2. 프로젝트 디렉토리 구조 설정
- 먼저, PHP 파일을 저장할 프로젝트 디렉토리를 생성합니다.
C:\Users\test\php
이 디렉토리 안에 index.php 파일을 생성합니다. 예시로 간단한 PHP 코드를 넣어보겠습니다.
<?php
echo "Hello, Docker!";
?>
3. Dockerfile 작성
- Dockerfile은 Docker 이미지를 빌드하기 위한 설정 파일입니다. 이 파일을 C:\Users\test\php 디렉토리에 생성하세요.
# 베이스 이미지를 PHP의 공식 이미지로 설정
FROM php:8.1-apache
# 컨테이너에서 Apache의 DocumentRoot를 지정 (디폴트: /var/www/html)
WORKDIR /var/www/html
# 현재 디렉토리의 모든 파일을 컨테이너의 DocumentRoot로 복사
COPY . /var/www/html
# Apache를 실행하여 PHP 서버를 시작
CMD ["apache2-foreground"]
4. docker-compose.yml 작성
- 여러 개의 컨테이너를 한 번에 관리하려면 docker-compose.yml 파일을 사용할 수 있습니다. 이 파일도 C:\Users\test\php 디렉토리에 생성하세요.
version: '3.8'
services:
web:
build: .
ports:
- "8080:80"
volumes:
- .:/var/www/html
container_name: php-apache-container
이 설정은 호스트의 8080 포트를 컨테이너의 80 포트와 연결하며, 현재 디렉토리의 파일을 컨테이너의 /var/www/html 디렉토리에 마운트합니다.
5. Docker 이미지 빌드
- Docker 이미지를 빌드하기 위해 터미널(저는 git bash를 사용했습니다.)을 열고 프로젝트 디렉토리(C:\Users\test\php)로 이동한 후, 다음 명령어를 실행하세요.
docker build -t my-php-app .
이 명령어는 my-php-app이라는 이름의 Docker 이미지를 생성합니다.
6. Docker 컨테이너 실행
- Docker 컨테이너를 실행하려면 다음 명령어를 사용하세요.
docker run -d -p 8080:80 -v C:\Users\test\php:/var/www/html --name php-apache-container my-php-app
이 명령어는 백그라운드에서 컨테이너를 실행하고, 호스트의 8080 포트를 컨테이너의 80 포트와 매핑하며, 로컬 디렉토리를 컨테이너의 /var/www/html로 마운트합니다.
에러가 표기될 경우 역슬래시(\) 대신 슬래시(/)를 사용합니다.
- docker-compose.yml 파일을 사용했다면, 다음 명령어로 컨테이너를 실행할 수 있습니다.
docker-compose up -d
에러가 표기될 경우 docker-compose.yml 파일이 비어있거나, Docker가 해당 파일을 인식하지 못하기 때문입니다.
docker-compose.yml 파일이 비어 있는지 확인하고 파일의 경로 및 이름을 확인해주세요.
7. PHP 파일 실행 확인
- 웹 브라우저를 열고 http://localhost:8080에 접속하여 index.php 파일이 제대로 실행되는지 확인합니다. "Hello, Docker!" 메시지가 출력되면 성공적으로 설정된 것입니다.
추가적으로 test.php라는 파일을 추가했을 경우
1. PHP 파일 추가
- C:\Users\test\php 디렉토리에 새로운 PHP 파일을 추가합니다. 예를 들어, test.php라는 파일을 생성합니다.
<?php
echo "This is a test file!";
?>
2. 웹 브라우저에서 새 파일 실행 확인
- 웹 브라우저를 열고, 다음 주소로 접속합니다:
http://localhost:8080/test.php
3. 자동 반영 여부 확인
- Docker로 설정한 환경에서는 기본적으로 docker-compose.yml 파일의 volumes 항목에서 설정된 대로, 로컬 디렉토리(C:\Users\test\php)와 컨테이너 내 디렉토리(/var/www/html)가 동기화됩니다.
- 따라서, 로컬 디렉토리에 파일을 추가하거나 수정하면, 별도의 컨테이너 재시작 없이도 바로 반영됩니다.
4. 문제 해결 (필요시)
- 만약 새로 추가한 파일이 인식되지 않거나, 404 Not Found 오류가 발생한다면, 다음 사항들을 확인하세요:
- 파일 이름이 정확한지 확인합니다.
- 파일 경로가 C:\Users\dev_221108\php 내에 있는지 확인합니다.
- 컨테이너에서 동기화가 제대로 이루어지지 않았다면, 컨테이너를 재시작할 수도 있습니다.