LoginSignup
0
0

More than 1 year has passed since last update.

DockerでLaravel9作成メモ

Last updated at Posted at 2023-01-22

なんだかLaravel8のサポート期限もあるので,Laravel9を立ち上げてみたら,Jetstreamが面倒でした.

環境

MacとVSCODEつかってます.

特記事項

Jetstream Team版を入れる前提です.npmのあたりが面倒でした.

フォルダとファイル構成

myapp
├── Docker(←これはファイルですね)
│   ├── App
│   │   ├── 000-default.conf
│   │   ├── Dockerfile
│   │   └── php.ini
│   └── DB
├── docker-compose.yml
└── src

Dockerfile よーしどんなPCケースにしようかなぁ

Dockerfileってなんとなく「秋葉原でパーツを買ってPC組み立てるよ!おっとそのスペックはこれね!」みたいな設定かな.組み立てはビルドって言ってもうちょい後.

で,これはケースの設定と思えばいいかな.

Dockerfile
FROM php:8.1-apache-bullseye
EXPOSE 5173

ADD php.ini /usr/local/etc/php/
ADD 000-default.conf /etc/apache2/sites-enabled/

RUN cd /usr/bin && curl -s http://getcomposer.org/installer | php && ln -s /usr/bin/composer.phar /usr/bin/composer

RUN apt-get update \
&& apt-get install -y \
git \
zip \
unzip \
vim \
libpng-dev \
libpq-dev \
&& docker-php-ext-install pdo_mysql

RUN mv /etc/apache2/mods-available/rewrite.load /etc/apache2/mods-enabled
RUN /bin/sh -c a2enmod rewrite

RUN curl -sL https://deb.nodesource.com/setup_19.x | bash -
RUN apt-get install -y nodejs

たしか,node19を入れる設定がJetstreamがらみだったと思います.

000-default.conf パーツの設定かな1

パーツ買いに秋葉原に行くんだけど,設定(1)はこれね.たぶんApacheの設定だと思う.

000-default.conf
<VirtualHost *:80>
       ServerAdmin laravel@localhost
       DocumentRoot /var/www/html/public
       ErrorLog ${APACHE_LOG_DIR}/error.log
       CustomLog ${APACHE_LOG_DIR}/access.log combined
       <Directory /var/www/html/public>
           AllowOverride All
       </Directory>
</VirtualHost>

php.ini パーツの設定かな2

秋葉原に買いに行くパーツはこの設定ねその(2)みたいなの.phpの設定やね.

php.ini
[Date]
date.timezone = "Asia/Tokyo"
[mbstring]
default_charset = "UTF-8"
mbstring.language = "Japanese"

docker-compose.yml パーツの設定かな3

秋葉原に買いに行くパーツはこの設定ねその(3)みたいなの.パーツの組み立て手順書はみたいなのかな.

docker-compose.yml
# docker-composeのバージョン
version: '3.9'

services:
 # アプリの設定
 app:
   #コンテナの名前をここで決めます。
   container_name: myapp
   #ポート番号の設定 5173はvite関係で必用
   ports:
     - "8000:80"
     - "5173:5173"
   # Dockerfileの場所
   build: ./Docker/App
   # この中にLaravelを構築する設定(Laravelインストはまだ)
   volumes:
     - ./src:/var/www/html
 # MySQLの設定
 db:
   #Docker HubからMySQLをとってきます。Lravael9はmysql8以上だったかな
   image: mysql:8.0
   # コンテナ名の指定(.envで使うよ)
   container_name: my_db
   # MySQLの設定
   environment:
     MYSQL_ROOT_PASSWORD: root
     MYSQL_DATABASE: my_database
     MYSQL_USER: mydbuser
     MYSQL_PASSWORD: mydbpass
     TZ: 'Asia/Tokyo'
   command: mysqld --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci
   volumes:
     - ./Docker/DB/volume:/var/lib/mysql
     - ./Docker/DB/my.cnf:/etc/mysql/conf.d/my.cnf
   ports:
     - 13306:3306

Dockerのビルド

Dockerのビルドって秋葉原行って買ってきたぞー.よしお家帰ってきたぞー.
じゃ,組み立てるぞーみたいなイメージかな.

docker-compose.ymlのあるディレクトリで,

docker-compose up -d --build

をします.これで,DockerにPC作られたよ!でもソフト入ってないよ〜

Compose使ってLaravelをインストール

PC起動できた(Dockerにコンテナが立ち上がった)!
そしたら,なんかソフトインストールしよう.
じゃ,起動できたPC内で作業すっからここからDockerの中のコマンドラインで実行です.

pwd打って現在のディレクトリがhtmlの中なのを確認して,Dockerでコマンドラインに入ります.

そこで,

composer create-project "laravel/laravel=" . --prefer-dist

をします.これでは最新版が入ってしまうので,バージョン8の指定したい場合は,

composer create-project "laravel/laravel=8.*" . -prefer-dist

にします.

確認

http://localhost:8000/ 
にアクセスしてLaravelの画面が現れていたらまずは完了です.右下のバージョンを確認してみてください.

image.png

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0