Giter Club home page Giter Club logo

laravel_on_docker_prc1's Introduction

Laravel(Docker)の学習

概要

 Dockerで動かすLaravelについて学習する。
参考書は以下を選択する。

開発環境

 開発環境について以下に列挙する。

項目 バージョンまたはイメージ名
ホストOS Ubuntu22.04
docker 24.0.4
docker compose v2.19.1
php 8.1.21(php:8.1.21-zts-bullseye)
composer composer:lts
Laravel 9.*

Laravelの準備

Laravelのインストールとコンテナの立ち上げ方

 以下の要領でコマンドを実行し、開発及び実行環境を構築する。ディレクトリは./prjとする。

#事前にdocker pull composer:ltsを実行してイメージを入手する。

#Laravel 9.*をインストールする。
docker run -u=$(id -u):$(id -g) --rm --interactive --tty --volume $PWD:/app composer:lts create-project "laravel/laravel=9.*" ./prj
#コンテナの環境変数をセットする。
./gen_envfile.sh
#コンテナを立ち上げる。
docker compose up -d --build

サーバーを起動して確認する

 サーバーを起動するためには、まずIPアドレスを調べる。コンテナに入ってhostname -iで確認する、またはdocker-compose.ymlからIPアドレスを確認する。(IPアドレスを$IP_ADDRESSとして以下に記述する。)
 コンテナのIPアドレス($IP_ADDRESS)をもとにサーバを立ち上げる。以下のコマンドを実行し、http://$IP_ADDRESS:8000/にアクセスする。うまく行けばLaravelと書かれたページが表示される。

php artisan serve --host=$IP_ADDRESS

以下のコマンドでも起動する。

php artisan serve --host=$(hostname -i)

参考文献

一次情報

本やWeb上の情報

 記録に残っている参考にした本とサイトを記す。

メモ

 第5章はLaravelの機能であるDBクラスからデータベースを動かす。内容的にはほとんどSQL文に近いこと、ほとんどのケースでORMを使ってコードを書くと思われるので第5章を飛ばして第6章に取り組む。とはいえ、5章での内容が作業に必要になるので、4章から6章に移動するために必要な操作を以下に記録する。

#step1
php artisan make:model Person -m #モデルとマイグレーションファイルを作成

#step2
#マイグレーションファイルを編集(下記参考)

#step3
touch database/database.sqlite #ファイルを作成

#step4
#設定ファイルの編集
# config/database.php のデフォルト設定をsqliteにする。
# .envファイルのDB_CONNECTIONをsqliteにする。
# .envファイルのDB_DATABASEをdatabase/database.sqliteにする。←database.php の設定と同じことを書いているがなぜだろう?ー>(※)

#step5
php artisan migrate #マイグレーションを実行

#step6
php artisan make:seeder PeopleTableSeeder #シーダーを用意する。

#step7
#DatabaseSeeder.phpに作成したシーダーを登録。

#step8
php artisan db:seed #シーダーを実行する。

#step9
#helloapp.blade.phpにstyleを追加する。(表の見え方を追加)

マイグレーションファイルの記述は本とv9.xでは異なる。以下のドキュメントを参考に記述していく。


(※)追記。
公式ドキュメントを読んでいると設定についての記述があった。

はじめは以下の設定を記述していた。

DB_CONNECTION=sqlite
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=/home/user01/prj/database/database.sqlite
DB_USERNAME=root
DB_PASSWORD=

しかし、以下のページを確認すると上記は不要ですべて削除しても良いということだった。

実際に削除した状態で実行したが問題なく動作した。


Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.