Docker環境でのLaravel×Nuxt.js開発時のDB接続とCORS問題を解決
はじめに
Docker環境を用いて、Laravel(APIサーバー)、Nuxt.js(フロント)の環境を構築しました。
その際コンテナ名関連のエラー
が2つほど出たのでその点について記載します。
本記事で扱わないもの
- Docker環境の構築方法
- LaravelをAPIサーバーとして利用する方法
- Nuxt.jsでのAPIリクエスト方法
概要
- LaravelをAPIサーバー、Nuxt.jsをフロントとして利用
- axiosを用いてLaravelにAPIをリクエスト
DB接続問題
LaravelでDBへアクセスしたら下記エラーが発生しました。
調べたところDockerの場合、.env
の変更が必要になるとのことで修正。
(変更前)
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=laravel
DB_USERNAME=root
DB_PASSWORD=
(変更後)
DB_CONNECTION=mysql
DB_HOST=db #ここをデータベースのコンテナ名にする
DB_PORT=3306
DB_DATABASE=laravel
DB_USERNAME=root
DB_PASSWORD=
CORS問題
Nuxt.jsからはaxiosを用いてLaravelへjsonを取りにいきます。
プロキシ関連でエラーが出ましたので対応します。
プロキシ設定
モジュールを追加します。
$ yarn add @nuxtjs/proxy
nuxt側では/api
でLaravelにアクセスします。
web
がコンテナ名、80
がコンテナのポートになります。(ここを最初localhost:8000にしていたので少しつまずきました)
modules: [
"@nuxtjs/axios",
"@nuxtjs/proxy" //追加
],
axios: {
proxy: true //追加
},
proxy: {
"/api": "http://web:80" //追加
},
おわりに
LaravelをAPIサーバーとしてDocker環境で開発する際などは上記以外にも必要となる部分が出てくるかと思いますが、その辺りは検索したら割とすぐ出てくるのでそこにあまり載っていなかったものに関して今回記載しました。
Author And Source
この問題について(Docker環境でのLaravel×Nuxt.js開発時のDB接続とCORS問題を解決), 我々は、より多くの情報をここで見つけました https://qiita.com/ikeyansaza/items/bd32feea1404386558e9著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .