1. 도커에서 ubuntu 이미지와 컨테이너 띄우기
2. 컨테이너에 개발환경 세팅
- PHP8.0
- Nginx
- Laravel8
3. 컨테이너와 로컬 개발환경 연동하기
1. 도커에서 ubuntu 이미지와 컨테이너 띄우기
docker pull ubuntu
docker run -it -p 80:80 --name mycontainer ubuntu bash
2. 컨테이너에 개발환경 세팅
- apt 관련 업데이트 및 php8 설치
# apt 최신버전 리스트업
apt update
# apt 최신버전 설치
apt upgrade
# 소프트웨어 관리 패키지 설치
apt install software-properties-common
# 최신버전 설치를 위한 별도의 레포지토리 추가
add-apt-repository ppa:ondrej/php
# php8 및 php-fpm 패키지 설치 / 확인
apt install php8.0-fpm
php-fpm8.0 -v
# laravel 설치에 필요
apt install php8.0-zip
# laravel 실행시 필요
apt install php8.0-mbstring
apt install php8.0-xml
- nginx 설치 및 세팅
# nginx 설치 / 확인
apt install nginx
nginx -v
# vim 에디터 설치
apt install vim
# nginx php-fpm 설정 추가
vi /etc/nginx/site-available/default
server {
....
}
server부분에 설정 추가
server {
listen 80 default_server;
listen [::]:80 default_server;
# 홈 디렉토리 설정
root /home/laravel8/public;
# Add index.php to the list if you are using PHP
#index index.html index.htm index.nginx-debian.html;
index index.php index.html;
# 자신의 로컬 도메인 설정
server_name host.docker.internal;
# 아래 주석처리
#location / {
# First attempt to serve request as file, then
# as directory, then fall back to displaying a 404.
#try_files $uri $uri/ =404;
#}
# try_files 설정 새로 추가
try_files $uri $uri/ /index.php;
# php-fpm 설정 추가
# fastcgi_pass 경로는 vi /etc/php/8.0/fpm/pool.d/www.conf 경로에서 확인 가능
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/run/php/php8.0-fpm.sock;
}
}
- 홈 디렉토리에 Laravel8 설치
# composer 2.x 버전으로 설치 (1.x 는 ubuntu20 이상에서 laravel command not found오류)
apt remove composer
apt install curl
curl -s https://getcomposer.org/installer | php
mv composer.phar /usr/local/bin/composer
# composer 2.x 버전 확인
composer -v
# laravel installer 설치
composer global require laravel/installer
# bashrc에 PATH 등록
vi ~/.bashrc
# 제일 하단에 Laravel Composer PATH 등록
# Laravel Composer
export PATH="$PATH:$HOME/.composer/vendor/bin"
# bashrc 적용
source ~/.bashrc
# laravel 프로젝트 생성
cd /home
laravel new laravel8(프로젝트 폴더명)
# laravel 폴더 접근권한 설정
chown -R www-data laravel8
laravel 폴더 접근권한 설정은
/etc/php/8.0/fpm/pool.d/www.conf
위 파일에 설정되어있는 id와 동일하게 적용해줘야 한다.
; Unix user/group of processes
; Note: The user is mandatory. If the group is not set, the default user's group
; will be used.
# 이 부분 www-data에서 root로 변경하는것이 나중에 로컬환경과 마운트 할때 편하다
user = www-data
group = www-data
- php-fpm 및 nginx 실행
# php-fpm 실행
service php8.0-fpm start
# nginx 실행
service nginx start
그리고 웹브라우저 localhost 를 입력하면 아래와 같이 laravel 화면이 뜬다.
http://localhost
http://host.docker.internal
http://gateway.docker.internal
이외에
C:\Windows\System32\drivers\etc\hosts
파일에 세팅되어있는 ip 및 도메인 모두 동일하게 접근 가능
# Added by Docker Desktop
192.168.0.3 host.docker.internal
192.168.0.3 gateway.docker.internal
192.168.0.3 local.dev
local.dev 처럼 자신의 로컬 개발용 도메인도 넣어주면 자신의 브라우저에서 local.dev로 접속 가능.
다음에는 Xdebug3 환경 세팅하는 방법을 알아보자
https://mosei.tistory.com/entry/Docker-Intellij-PHP8-Xdebug3-%EC%84%A4%EC%A0%95
반응형
'Docker' 카테고리의 다른 글
[Docker] 컨테이너에서 systemctl 사용 문제 (0) | 2021.09.24 |
---|---|
[Docker] 기존 컨테이너의 포트 변경하기 (0) | 2021.09.23 |
[Docker] Container 접속과 종료 시 주의할 점 (1) | 2021.09.17 |
[Docker] Container 접속 시 TTY 에러 (0) | 2021.09.17 |
[Docker] 도커 컨테이너 SSH 접속 및 사용 방법 (0) | 2020.11.18 |