Docker+Laravel에서 MySQL을 사용할 수 있을 때까지의 메모
환경
OS: macOS Mojave 10.14.6
Docker: version 19.03.1
Laradock 다운로드
디렉토리를 만든 후 Laradock을 리포지토리에서 가져옵니다.
호스트
$ mkdir laradock_tutorial
$ cd laradock_tutorial
$ git clone https://github.com/Laradock/laradock.git
Cloning into 'laradock'...
remote: Enumerating objects: 9107, done.
remote: Total 9107 (delta 0), reused 0 (delta 0), pack-reused 9107
Receiving objects: 100% (9107/9107), 8.36 MiB | 4.38 MiB/s, done.
Resolving deltas: 100% (4891/4891), done.
MySQL 설정 변경
laradock 디렉토리로 이동하여 .env-example을 복사하여 이름 바꾸기
이번은 MySQL의 버전은 5.7, DB명은 test, 유저명은 user, 패스워드는 없음으로 한다.
호스트
$ cd laradock
$ cp env-example .env
$ vi .env
# 240行目~
MYSQL_VERSION=5.7
MYSQL_DATABASE=test
MYSQL_USER=user
MYSQL_PASSWORD=
컨테이너 초기화
(꽤 시간이 걸립니다)
호스트
$ docker-compose up -d nginx mysql workspace phpmyadmin
Laravel 애플리케이션 만들기
Workspace 컨테이너로 들어갑니다.
Laravel 5.7에서 sample이라는 응용 프로그램 만들기 (시간이 걸립니다)
도중에 Do not run Composer as root/super user! 라고 나오지만 신경쓰지 않는다
호스트
$ docker-compose exec workspace bash
workspace(docker)
$ cd laradock
$ composer create-project "laravel/laravel" sample --prefer-dist "5.7.*"
Application key set successfully.
데이터베이스 연결 설정
컨테이너 내에서 sample 어플리케이션이 생겼는지 확인한 후, sample 디렉토리로 이동
workspace(docker)
$ ls
laradock sample
$ cd sample
$ vi .env
# 12行目~ ホストのDB設定と同じにすること。
DB_DATABASE=test
DB_USERNAME=user
DB_PASSWORD=
샘플 애플리케이션과 Laradock 연결
workspace(docker)
$ cd ../laradock
$ vi .env
# 7行目~
APP_CODE_PATH_HOST=../sample
# workspaceコンテナから抜ける
$ exit
DB 작성용 파일 편집
호스트
$ cd mysql/docker-entrypoint-initdb.d
$ cp createdb.sql.example createdb.sql
$ vi createdb.sql
# 新しく記入
CREATE DATABASE IF NOT EXISTS `test` COLLATE 'utf8_general_ci' ;
GRANT ALL ON `test`.* TO 'user'@'%' ;
DB 만들기와 사용자 연결
호스트
$ cd ../..
$ docker-compose exec mysql bash
mysql 컨테이너에 들어간다.
mysql(docker)
$ mysql -u root -p < /docker-entrypoint-initdb.d/createdb.sql
Enter password: (rootと入力)
# 作成されたか確認
$ mysql -u user -p
Enter password: (そのままEnter)
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| test | ← testデータベースが作成されている。
+--------------------+
mysql> exit
Bye
$ exit
동작 확인
sample 디렉토리로 이동하여 마이그레이션할 수 있는지 확인.
이것으로 움직이면 MySQL을 사용할 수 있습니다.
호스트
$ cd ../sample/
$ php artisan migrate:fresh
Dropped all tables successfully.
Migration table created successfully.
Migrating: 2014_10_12_000000_create_users_table
Migrated: 2014_10_12_000000_create_users_table
Migrating: 2014_10_12_100000_create_password_resets_table
Migrated: 2014_10_12_100000_create_password_resets_table
마지막으로 서버가 시작되었는지 확인합니다.
호스트
$ php artisan serve
http://localhost:8000 로 이동하여 다음 페이지가 표시되면 성공합니다.
참고로 한 것
· htps : // 코 m / 야나기 코타 / ms / dcd7 16b7fb7353 086
· htps // chbぉg. s 이렇게 r. 이. jp/엔트리/2019/01/11/133508
Reference
이 문제에 관하여(Docker+Laravel에서 MySQL을 사용할 수 있을 때까지의 메모), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/kokamoto01/items/7ba908613e478f04dff1텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)