https://qiita.com/rope19181/items/10da72374839630af83b
こちらをリスペクトして、開発環境を構築していきます。
ほぼ、そのままで行けましたが、エラーが一部発生したので以下に記載します。
project
├ docker
│ ├ db
│ │ ├ data
│ │ ├ my.conf
│ │ └ sql
│ │
│ ├ nginx
│ │ └ default.conf
│ │
│ └ php
│ ├ Dockerfile
│ └ php.ini
├ myapp
└ docker-compose.yml
docker-compos up -d –buildで、以下のエラーが発生しました。
Dockerfile内で、まず、php7.2-fpm => php7.4-fpmに変更したためのエラーのようです。
configure: error: Package requirements (libzip >= 0.11) were not met:
No package 'libzip' found
Consider adjusting the PKG_CONFIG_PATH environment variable if you
installed software in a non-standard prefix.
Alternatively, you may set the environment variables LIBZIP_CFLAGS
and LIBZIP_LIBS to avoid the need to call pkg-config.
See the pkg-config man page for more details.
ERROR: Service 'php' failed to build: The command '/bin/sh -c apt-get update && apt-get install -y zlib1g-dev mariadb-client && docker-php-ext-install zip pdo_mysql' returned a non-zero code: 1
Dockerfileの以下の行を修正します。
&& apt-get install -y zlib1g-dev mariadb-client \
↓
&& apt-get install -y libzip-dev mariadb-client \
再度、buildをします。
以下のエラーが発生しました。
Could not open input file: composer-setup.php
ERROR: Service 'php' failed to build: The command '/bin/sh -c php composer-setup.php' returned a non-zero code: 1
ぐぐるとすぐに出てきたので、以下の対応を追加
composerのページに行き、そこにある以下の赤枠部分をコピーして
Dockerfileの同様の部分に貼付け、各行の頭に、”RUN”を追加する。
(よく読むと、本家のサイトに、コピペすることと書いてありました。)
こちらは、ハッシュ値が変わったことによるエラーのようでした。(最新版を反映する)
![Lavavel+vueでサイト構築①](https://res.cloudinary.com/dz7ruywxa/images/w_1024,h_398,c_scale/f_auto,q_auto/v1613109947/-2020-07-05-22.35.45/-2020-07-05-22.35.45.png?_i=AA 1024w, https://res.cloudinary.com/dz7ruywxa/images/w_300,h_117,c_scale/f_auto,q_auto/v1613109947/-2020-07-05-22.35.45/-2020-07-05-22.35.45.png?_i=AA 300w, https://res.cloudinary.com/dz7ruywxa/images/w_768,h_298,c_scale/f_auto,q_auto/v1613109947/-2020-07-05-22.35.45/-2020-07-05-22.35.45.png?_i=AA 768w, https://res.cloudinary.com/dz7ruywxa/images/w_1536,h_597,c_scale/f_auto,q_auto/v1613109947/-2020-07-05-22.35.45/-2020-07-05-22.35.45.png?_i=AA 1536w, https://res.cloudinary.com/dz7ruywxa/images/f_auto,q_auto/v1613109947/-2020-07-05-22.35.45/-2020-07-05-22.35.45.png?_i=AA 1600w)
RUN php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
RUN php -r "if (hash_file('sha384', 'composer-setup.php') === 'e5325b19b381bfd88ce90a5ddb7823406b2a38cff6bb704b0acc289a09c8128d4a8ce2b\
bafcd1fcbdc38666422fe2806') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_E\
OL;"
RUN php composer-setup.php
RUN php -r "unlink('composer-setup.php');"
上記の修正して、buildを行い、エラーがでずに完了することを確認します。
docker-compose up -d --build
![Lavavel+vueでサイト構築①](https://res.cloudinary.com/dz7ruywxa/images/f_auto,q_auto/v1613109942/-2020-07-05-23.00.22/-2020-07-05-23.00.22.png?_i=AA 910w, https://res.cloudinary.com/dz7ruywxa/images/w_300,h_59,c_scale/f_auto,q_auto/v1613109942/-2020-07-05-23.00.22/-2020-07-05-23.00.22.png?_i=AA 300w, https://res.cloudinary.com/dz7ruywxa/images/w_768,h_150,c_scale/f_auto,q_auto/v1613109942/-2020-07-05-23.00.22/-2020-07-05-23.00.22.png?_i=AA 768w)
Laravelプロジェクトの作成
phpコンテナに入ります。
docker-compose exec php bash
新規プロジェクトを作成(Laravel6を入れます)
pwd
/var/www/ #/var/www/で以下のコマンドを実行
composer create-project --prefer-dist laravel/laravel=6.* .
![Lavavel+vueでサイト構築①](https://res.cloudinary.com/dz7ruywxa/images/f_auto,q_auto/v1613109937/-2020-07-05-23.14.05/-2020-07-05-23.14.05.png?_i=AA 728w, https://res.cloudinary.com/dz7ruywxa/images/w_300,h_142,c_scale/f_auto,q_auto/v1613109937/-2020-07-05-23.14.05/-2020-07-05-23.14.05.png?_i=AA 300w)
Laravelプロジェクトの環境設定
laravelプロジェクト内の.envやconfig/detabase.phpのデータベースの設定docker-compose.ymlに設定した値に変更します。
(編集は、Docker内ではなくローカル環境で行います。)
myapp/.env, myapp/config/database.phpを編集します。
# docker-compose.ymlの設定
db:
image: mysql:5.7
container_name: db-host
environment:
MYSQL_ROOT_PASSWORD: root
MYSQL_DATABASE: database
MYSQL_USER: docker
MYSQL_PASSWORD: docker
TZ: 'Asia/Tokyo'
#.envファイル
[Before]
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=laravel
DB_USERNAME=root
DB_PASSWORD=
[After]
DB_CONNECTION=mysql
DB_HOST=db-host
DB_PORT=3306
DB_DATABASE=database
DB_USERNAME=docker
DB_PASSWORD=docker
#config/database.php
[Before]
'host' => env('DB_HOST', '127.0.0.1'),
'database' => env('DB_DATABASE', 'forge'),
'username' => env('DB_USERNAME', 'forge'),
'password' => env('DB_PASSWORD', ''),
[After]
'host' => env('DB_HOST', 'db-host'),
'database' => env('DB_DATABASE', 'database'),
'username' => env('DB_USERNAME', 'docker'),
'password' => env('DB_PASSWORD', 'docker'),
表示確認
以下に、アクセスし、トップページが表示されることを確認。
![Lavavel+vueでサイト構築①](https://res.cloudinary.com/dz7ruywxa/images/w_1024,h_299,c_scale/f_auto,q_auto/v1613109931/-2020-07-05-23.27.18/-2020-07-05-23.27.18.png?_i=AA 1024w, https://res.cloudinary.com/dz7ruywxa/images/w_300,h_88,c_scale/f_auto,q_auto/v1613109931/-2020-07-05-23.27.18/-2020-07-05-23.27.18.png?_i=AA 300w, https://res.cloudinary.com/dz7ruywxa/images/w_768,h_224,c_scale/f_auto,q_auto/v1613109931/-2020-07-05-23.27.18/-2020-07-05-23.27.18.png?_i=AA 768w, https://res.cloudinary.com/dz7ruywxa/images/w_1536,h_448,c_scale/f_auto,q_auto/v1613109931/-2020-07-05-23.27.18/-2020-07-05-23.27.18.png?_i=AA 1536w, https://res.cloudinary.com/dz7ruywxa/images/f_auto,q_auto/v1613109931/-2020-07-05-23.27.18/-2020-07-05-23.27.18.png?_i=AA 1600w)
migrateとphpMyAdminの表示確認
phpコンテナに入り、migrateを実行します。
php artisan migrate
![Lavavel+vueでサイト構築①](https://res.cloudinary.com/dz7ruywxa/images/w_1024,h_239,c_scale/f_auto,q_auto/v1613109924/-2020-07-05-23.36.56/-2020-07-05-23.36.56.png?_i=AA 1024w, https://res.cloudinary.com/dz7ruywxa/images/w_300,h_70,c_scale/f_auto,q_auto/v1613109924/-2020-07-05-23.36.56/-2020-07-05-23.36.56.png?_i=AA 300w, https://res.cloudinary.com/dz7ruywxa/images/w_768,h_180,c_scale/f_auto,q_auto/v1613109924/-2020-07-05-23.36.56/-2020-07-05-23.36.56.png?_i=AA 768w, https://res.cloudinary.com/dz7ruywxa/images/f_auto,q_auto/v1613109924/-2020-07-05-23.36.56/-2020-07-05-23.36.56.png?_i=AA 1052w)
phpMyAdmin
databaseデータベースに、4つのテーブルができていればOKです。
![Lavavel+vueでサイト構築①](https://res.cloudinary.com/dz7ruywxa/images/w_1024,h_189,c_scale/f_auto,q_auto/v1613109918/-2020-07-05-23.39.00/-2020-07-05-23.39.00.png?_i=AA 1024w, https://res.cloudinary.com/dz7ruywxa/images/w_300,h_55,c_scale/f_auto,q_auto/v1613109918/-2020-07-05-23.39.00/-2020-07-05-23.39.00.png?_i=AA 300w, https://res.cloudinary.com/dz7ruywxa/images/w_768,h_142,c_scale/f_auto,q_auto/v1613109918/-2020-07-05-23.39.00/-2020-07-05-23.39.00.png?_i=AA 768w, https://res.cloudinary.com/dz7ruywxa/images/w_1536,h_283,c_scale/f_auto,q_auto/v1613109918/-2020-07-05-23.39.00/-2020-07-05-23.39.00.png?_i=AA 1536w, https://res.cloudinary.com/dz7ruywxa/images/f_auto,q_auto/v1613109918/-2020-07-05-23.39.00/-2020-07-05-23.39.00.png?_i=AA 1550w)
ここまでで、開発環境の構築は完了です。
今後は、作成しようとしているサイトの構築を進めていきます。