diff --git a/.docker/Dockerfile b/.docker/Dockerfile new file mode 100644 index 0000000..f3dbccd --- /dev/null +++ b/.docker/Dockerfile @@ -0,0 +1,10 @@ +FROM php:7.4-apache + +# install mysqli and gd +ADD https://github.com/mlocati/docker-php-extension-installer/releases/latest/download/install-php-extensions /usr/local/bin/ +RUN chmod +x /usr/local/bin/install-php-extensions && \ + install-php-extensions gd mysqli + +# install app +COPY ./AvocadoEdition /var/www/html/ +RUN chmod -R 707 /var/www/html/data \ No newline at end of file diff --git a/.env.example b/.env.example new file mode 100644 index 0000000..6a23715 --- /dev/null +++ b/.env.example @@ -0,0 +1,6 @@ +APP_PORT=80 + +MYSQL_ROOT_PASSWORD=avocadoedition +MYSQL_DATABASE=avocadoedition +MYSQL_USER=avocadoedition +MYSQL_PASSWORD=avocadoedition \ No newline at end of file diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..2eea525 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +.env \ No newline at end of file diff --git a/AvocadoEdition/README.md b/AvocadoEdition/README.md index c823d04..724cf4a 100644 --- a/AvocadoEdition/README.md +++ b/AvocadoEdition/README.md @@ -1,10 +1,50 @@ # AvocadoEdition + 아보카도 에디션 코어 파일 ----------------------------- -해당 경로에 있는 파일들을 설치할 Root 디렉토리에 업로드해주세요. -자세한 설치 방법은 https://github.com/tateck-develop/AvocadoEdition/wiki 이곳을 참고해 주시길 바랍니다. +## 설치/실행 + +### FTP 기반 배포 + +해당 경로에 있는 파일들을 설치할 Root 디렉토리에 업로드해주세요. +자세한 설치 방법은 [이곳](https://github.com/tateck-develop/AvocadoEdition/wiki)을 참고해 주시길 바랍니다. + +### Docker + +> 주로 로컬에서 개발 환경을 구성하실 분들을 위한 부분입니다. +> 기본적인 [Docker](https://docker.com) 사용법을 안다고 전제하겠습니다. + +기본 세팅은 전부 되어 있으므로, 루트로 이동하셔서 compose up을 하시면 됩니다. + +```sh +docker-compose up -d +``` + +기본 세팅은 다음과 같습니다. + +* 웹애플리케이션 접속 URL: http://localhost:80 + * 앱 포트 80만 노출했음. DB 포트는 노출 없음 +* 최초 설치 시 DB 설정 + * Host: `avocadoedition` + * User: `avocadoedition` + * Password: `avocadoedition` + +```php +# AvocadoEdition/data/dbconfig.php 샘플 +define('G5_MYSQL_HOST', 'db'); +define('G5_MYSQL_USER', 'avocadoedition'); +define('G5_MYSQL_PASSWORD', 'avocadoedition'); +define('G5_MYSQL_DB', 'avocadoedition'); +``` + +기본 세팅을 덮어쓰시려면: + +1. `.env.example`이 있는 위치에 `.env` 파일을 만드시고, +2. `.env.example` 내용을 참고하여 `.env`에 필요한 설정을 넣으세요. + * DB 비밀번호 등을 고치실 때는, 혹시 `AvocadoEdition/data/dbconfig.php` 파일이 이미 만들어져 있을 경우, 이를 삭제해 주세요. +3. `docker-compose up`을 수행하세요. ----------------------------- diff --git a/AvocadoEdition/data/.gitignore b/AvocadoEdition/data/.gitignore new file mode 100644 index 0000000..c96a04f --- /dev/null +++ b/AvocadoEdition/data/.gitignore @@ -0,0 +1,2 @@ +* +!.gitignore \ No newline at end of file diff --git a/docker-compose.yaml b/docker-compose.yaml new file mode 100644 index 0000000..422623d --- /dev/null +++ b/docker-compose.yaml @@ -0,0 +1,29 @@ +services: + app: + build: + context: . + dockerfile: ./.docker/Dockerfile + container_name: avocado-edition-app + volumes: + - ./AvocadoEdition:/var/www/html + ports: + - ${APP_PORT:-80}:80 + depends_on: + - db + restart: unless-stopped + db: + image: lscr.io/linuxserver/mariadb:latest + container_name: avocado-edition-db + volumes: + - mariadb:/config + environment: + - PUID=1000 + - PGID=1000 + - TZ=Asia/Seoul + - MYSQL_ROOT_PASSWORD=${ROOT_ACCESS_PASSWORD:-avocadoedition} + - MYSQL_DATABASE=${MYSQL_DATABASE:-avocadoedition} + - MYSQL_USER=${MYSQL_USER:-avocadoedition} + - MYSQL_PASSWORD=${DATABASE_PASSWORD:-avocadoedition} + restart: unless-stopped +volumes: + mariadb: \ No newline at end of file