diff --git a/.env.sample b/.env.sample new file mode 100644 index 0000000..91406b1 --- /dev/null +++ b/.env.sample @@ -0,0 +1,30 @@ +################################################## +# 공통 설정 +################################################## + +# PHP 버전 선택: 8.2 또는 8.4 +PHP_VERSION=8.2 + +# 웹 루트 (호스트 기준) +WEB_ROOT=./www + +# UID / GID (호스트 사용자) +PUID=1000 +PGID=1000 + +################################################## +# MariaDB 설정 (cafe24 10G 유사) +################################################## + +MYSQL_ROOT_PASSWORD=rootpassword +MYSQL_DATABASE=firstgarden +MYSQL_USER=firstgarden +MYSQL_PASSWORD=firstgarden_pw + +# 포트 (필요 시 외부 접근) +MYSQL_PORT=3306 + +################################################## +# 타임존 +################################################## +TZ=Asia/Seoul diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..4c49bd7 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +.env diff --git a/README.md b/README.md index 2b08635..36934db 100644 --- a/README.md +++ b/README.md @@ -1,35 +1,43 @@ # 퍼스트가든 사이트 테스트용 php-apache 이미지 -- Cafe24 호스팅과 가능한 버전을 맞춰서 관리함. +- Cafe24 10G자이언트플러스 호스팅과 유사한 개발 환경 구축을 목표로 함 -### docker-compose.yml -```yaml -services: - web: - image: reg.firstgarden.co.kr/php-apache:8.2.7 - container_name: php-apache - ports: - - "80:80" - environment: - TZ: Asia/Seoul - PUID: 1000 - PGID: 1000 - APACHE_RUN_USER: www-data - APACHE_RUN_GROUP: www-data - volumes: - - ./html:/var/www/html # 소스코드 마운트 - restart: unless-stopped -``` +## 지원 PHP 버전 +- PHP 8.2 +- PHP 8.4 + +## 실행 방법 +```bash +cp .env.example .env +docker compose up -d --build + +## 접속 +http://localhost +DB: localhost:3306 + +## PHP 버전 변경 +`.env` 파일에서 `PHP_VERSION=8.4` + +--- ### 폴더 구조 -```PowerShell -| docker-compose.yml -| README.md -+---8.2 -| Dockerfile -| entrypoint.sh -| -\---8.2.7 - docker-compose.yml - Dockerfile - entrypoint.sh +```bash +. +├── docker-compose.yml +├── .env +├── README.md +├── logs/ +│ ├── apache/ +│ ├── php/ +│ └── mariadb/ +├── data/ +│ └── mariadb/ +├── www/ +│ └── (웹소스) +├── 8.2/ +│ ├── Dockerfile +│ └── entrypoint.sh +└── 8.4/ + ├── Dockerfile + └── entrypoint.sh + ``` \ No newline at end of file diff --git a/docker-compose.yml b/docker-compose.yml index b2fb4aa..b761533 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -1,13 +1,48 @@ services: - php-apache-8.2.7: - build: ./8.2.7 - image: reg.firstgarden.co.kr/php-apache:8.2.7 + web: + build: + context: . + dockerfile: ${PHP_VERSION}/Dockerfile + container_name: cafe24-php-${PHP_VERSION} + ports: + - "80:80" + env_file: + - .env + environment: + TZ: ${TZ} + PUID: ${PUID} + PGID: ${PGID} + volumes: + # 웹 소스 + - ${WEB_ROOT}:/var/www/html - php-apache-8.2: - build: ./8.2 - image: reg.firstgarden.co.kr/php-apache:8.2 - - php-apache-8.4: - build: ./8.4 - image: reg.firstgarden.co.kr/php-apache:8.4 + # 로그 분리 + - ./logs/apache:/var/log/apache2 + - ./logs/php:/var/log/php + depends_on: + - mariadb + restart: unless-stopped + mariadb: + image: mariadb:10.6 + container_name: cafe24-mariadb + ports: + - "${MYSQL_PORT}:3306" + env_file: + - .env + environment: + TZ: ${TZ} + MYSQL_ROOT_PASSWORD: ${MYSQL_ROOT_PASSWORD} + MYSQL_DATABASE: ${MYSQL_DATABASE} + MYSQL_USER: ${MYSQL_USER} + MYSQL_PASSWORD: ${MYSQL_PASSWORD} + command: + # cafe24 계열 기본값에 가깝게 조정 + - "--character-set-server=utf8mb4" + - "--collation-server=utf8mb4_unicode_ci" + - "--max-connections=100" + - "--sql-mode=NO_ENGINE_SUBSTITUTION" + volumes: + - ./data/mariadb:/var/lib/mysql + - ./logs/mariadb:/var/log/mysql + restart: unless-stopped