티스토리 뷰
도커를 깔아주고 시작합니다!!
터미널에서 먼저 만들고자하는 이름의 파일을 생성해주고
.laradock은 만들고자하는 프로젝트 이름입니당!
그리고 파일의 내용은 아래의 스크립트로 채우자.
laradock() {
if [[ $1 == 'new' ]]; then
if [[ -z "$2" ]]; then
echo "Input your ProjectName" &&
exit -1
fi;
BASE_PATH="$(eval echo ~$USER)/Desktop/code/$2"
if [[ -d "$BASE_PATH" ]]; then
echo "Same project already exists" &&
exit -2
fi;
mkdir -p $BASE_PATH && cd $BASE_PATH
mkdir ./Infra
laravel new $2
git clone https://github.com/Laradock/laradock.git ./Infra &&
mv ./Infra/env-example ./Infra/.env
sed -i '' -e "s/APP_CODE_PATH_HOST=..\//APP_CODE_PATH_HOST=..\/$2/g" ./Infra/.env
sed -i '' -e "s/APP_NAME=Laravel/APP_NAME=$2/g" ./$2/.env
sed -i '' -e "s/DB_HOST=127.0.0.1/DB_HOST=mariadb/g" ./$2/.env
sed -i '' -e "s/REDIS_HOST=127.0.0.1/REDIS_HOST=redis/g" ./$2/.env
cd ./Infra && pwd
else
echo "Usage : laradock new projectName"
fi;
}
스크립트의 출처 : github.com/dhtmdgkr123 요분께서 만드신걸 사용함! 압도적 캄사를!
위의 이 스크립트부분은 두번째 부터는 생략해도 괜찮음!!
와 같이 .zshrc를 열어서 맨 끝에 아래와 같이 파일명을 입력해준당. (이부분도 두번째부터는 생략 가능함.)
// .zshrc 파일 내 추가
source ./~laradock
그 후에 터미널에서
// laradock new projectName
laradock new laradock
하면 끝이당!!
이 상태에서 디렉토리 찾을 수 없다는(No such directory) 오류가 난다면 PATH설정을 제대로 했는지 확인해보자.
깔고나면 아래와 같은 경로로 이동 해 있을 것인데, ls 해보면 리스트가 쭈욱 나오는데 모두 컨테이너이당!
jione@JEONGuicBookPro Infra % pwd
/Users/jione/Desktop/code/laradock/Infra
jione@JEONGuicBookPro Infra % vi .env
(+ env파일 내에 관련 설정들이 있는데 여기서 소스 패스라던지, php버전이라던지 이런것들을 변경할 수 있다)
설치할 수 있는 컨테이너들이고, 이제 얘네들 중에서 선택해서 연결하고 도커에 올려보자.
// docker-composer up -d 컨테이너 컨테이너 컨테이너
// https://laradock.io/
// workspace는 서비스들이 한곳에서 유기적으로 연결되는 공간이므로 필수!
docker-compose up -d mariadb redis nginx php-fpm workspace
필요한것만 가져오고.
만약 이때
error response from daemon: Get https://registry-1.docker.io/v2/: dial tcp: lookup registry-1.docker.io on 192.168.64.1:53: read udp 192.168.64.5:49444->192.168.64.1:53: read: connection refused
이런 오류가 난다면 아래와 같은 방법으로 해결 가능함 ㅎ
나의 도커 버전은 20.10이었음. 그리고 맥 m1임
(도커 버전 확인 할려면 'docker info'로 확인 가능함.)
stop dnsmasq (brew services stop dnsmasq)
restart Docker Desktop
$ docker pull php:7.4-fpm → will success
출처: github.com/docker/for-mac/issues/5307
이러고 스톰으로 프로젝트 열면 됩니당!
혹여라도 백업이 필요하다면
cp ~/.zshrc ~/.zshrc-bak
로 백업해둡니다!
------
이후 마이그레이션 진행시
위와 같이 No such file or directory 오류가 발생한다면,
env파일에서 DB_HOST를 사용하고 있는 컨테이너 이름으로 변경 해주면 됩니다.
> docker ps
나오는 데이터베이스 컨테이너 이름을 복사해두고,
// .env 파일
DB_CONNECTION=mysql
DB_HOST=mariadb // 사용하고있는 디비 컨테이너 이름
DB_PORT=3306
DB_DATABASE=default
DB_USERNAME=default
DB_PASSWORD=secret
LOG_LEVEL=debug // 추가하는김에 얘도 추가
요렇게 하면 됩니다.
만약 그래도 같은 오류가 난다면 커넥션 설정이 샤딩되어있는지 확인합니다.
config/databases.php에 mysql 커넥션이 샤딩 되어있다면
'mysql1' => [
'driver' => 'mysql',
'url' => env('DATABASE_URL'),
'host' => env('DB_HOST', '127.0.0.1'),
'port' => env('DB_PORT', '3306'),
'database' => env('DB_DATABASE', 'forge'),
'username' => env('DB_USERNAME', 'forge'),
'password' => env('DB_PASSWORD', ''),
'unix_socket' => env('DB_SOCKET', ''),
'charset' => 'utf8mb4',
'collation' => 'utf8mb4_unicode_ci',
'prefix' => '',
'prefix_indexes' => true,
'strict' => true,
'engine' => null,
'options' => extension_loaded('pdo_mysql') ? array_filter([
PDO::MYSQL_ATTR_SSL_CA => env('MYSQL_ATTR_SSL_CA'),
]) : [],
],
위와 같이 임시로 데이터를 주고
.env파일의 DB_CONNECTION=mysql1로 변경하고 마이그레이션을 진행합니다.
그러면 드디어 셋팅 끝 ㅠㅠ
'Laravel' 카테고리의 다른 글
[라라벨 8] ACL - spatie permission (0) | 2021.06.28 |
---|---|
laravel 8] spatie/permission 테스트 코드 (0) | 2021.06.27 |
[Laravel 8] GraphQL을 적용해보자. (0) | 2021.04.23 |
Syntax error or access violation: 1071 Specified key was too long; (0) | 2020.09.10 |
라라벨7.0 생텀 spa (1) | 2020.09.07 |
- Total
- Today
- Yesterday
- 배열을_이쁘게
- 엘라스틱서치한글성공!
- gcp
- 프로그래밍은디버거부터시작이다
- 테스팅환경
- 더미데이터도유형이있어요
- UTF8
- twoseven.kr/0410
- fmf
- xml로도
- PhpStorm
- 테스팅
- Testing
- JSON으로도
- twoserven.kr/0410
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |