1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Ubuntu 24.04でGitとDockerを導入しLaravel Sailを起動するまでのまとめ

Posted at

はじめに

以前投稿したLaravelのインストール記事にて、WSL2上にLaravel Sailを構築しましたが、いきなりサーバのお引越しを行います。
今回はVMware上に建てた仮想マシンのUbuntu 24.04を使用し、Dockerの導入およびGitでCloneをしたソースでLaravel Sailの起動が出来る所までやりたいと思います。

環境

冒頭でも記載しましたが、今回はUbuntuの最新バージョンであるLTSの24.04を使用していきます。

OS情報

コマンド
$ cat /etc/os-release
PRETTY_NAME="Ubuntu 24.04 LTS"
NAME="Ubuntu"
VERSION_ID="24.04"
VERSION="24.04 LTS (Noble Numbat)"
~省略~

Gitの設定

WSLのUbuntu 24.04ではgitをインストールすると記載していた方もいたのですが、今回私の環境には既にgitが導入されていましたので、インストールは不要みたいです。

Gitバージョン

コマンド
$ git --version
git version 2.43.0

早速Git関連の設定をしていきます。
「user.name」、「user.email」は言わずもがなですが、「core.autocrlf」はチェックアウトの際に、Gitが勝手に改行コードがLFからCRLFに変換するのを防ぐ役割があります。

Gitアカウント設定

コマンド
$ git config --global user.name [ユーザ名]
$ git config --global user.email [メールアドレス]
$ git config --global core.autocrlf false

以下のコマンドで設定を確認することができます。

コマンド
$ git config user.name
$ git config user.email

GitのSSH設定とClone実行

単純にCloneするだけであればHTTPSでもよいかと思いますが、自身の管理しているソースコードという体ですので、SSHで一通りのやり取りができるようにしていきます。

SSHキーの作成

ユーザのホームディレクトリ配下にあるSSHディレクトリに移動し、ssh-keygenコマンドで鍵を作成します。
3回ほど何か聞かれますので、エンターを押して進めて行きます。
ここで作成された「~/.ssh/id_rsa.pub」を後ほどGit HUBのページに登録します。

コマンド
$ cd ~/.ssh
$ ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/home/XXX/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/XXX/.ssh/id_rsa
Your public key has been saved in /home/XXX/.ssh/id_rsa.pub

Git HUBへ公開鍵の登録

Git HUBの以下のページへアクセスすると、鍵の登録ページが表示されます。

「New SSH key」を押すと鍵の登録が行えます。
キャプチャ.PNG

以下の「Key」項目に先ほど作成した公開鍵の情報を貼り付けます。
Titleは任意でわかりやすい名前を付けておくとわかりやすいです。
キャプチャ.PNG

「Add SSH key」を押すと、スマホアプリ側に認証のリクエストが飛びました。
スマホ側で番号を入力してあげると処理が正常に完了します。

Git HUBへの疎通確認

鍵の登録が無事にできたらSSHコマンドで試しにアクセスしてみます。
「successfully authenticated」と表示されれば正常に疎通できています。

コマンド
$ ssh -T git@github.com
Hi XXX! You've successfully authenticated, but GitHub does not provide shell access.

Git HUBからソースのClone実行

コマンドは「git clone」を実行するだけです。
無事Laravelのプロジェクトがダウンロードできました。

コマンド
$ git clone git@github.com:motuneko253/test-project-v10.git
Cloning into 'test-project-v10'...
remote: Enumerating objects: 103, done.
remote: Counting objects: 100% (103/103), done.
remote: Compressing objects: 100% (79/79), done.
remote: Total 103 (delta 6), reused 103 (delta 6), pack-reused 0
Receiving objects: 100% (103/103), 73.84 KiB | 491.00 KiB/s, done.
Resolving deltas: 100% (6/6), done.
$
$ cd test-project-v10
$ ls -la
合計 392
drwxrwxr-x 12 test01 test01   4096  7 16 15:18 .
drwxr-x--- 18 test01 test01   4096  7 16 15:18 ..
-rw-rw-r--  1 test01 test01    258  7 16 15:18 .editorconfig
-rw-rw-r--  1 test01 test01   1097  7 16 15:18 .env.example
drwxrwxr-x  8 test01 test01   4096  7 16 15:18 .git
-rw-rw-r--  1 test01 test01    186  7 16 15:18 .gitattributes
-rw-rw-r--  1 test01 test01    243  7 16 15:18 .gitignore
-rw-rw-r--  1 test01 test01   4109  7 16 15:18 README.md
drwxrwxr-x  7 test01 test01   4096  7 16 15:18 app
-rwxrwxr-x  1 test01 test01   1686  7 16 15:18 artisan
drwxrwxr-x  3 test01 test01   4096  7 16 15:18 bootstrap
-rw-rw-r--  1 test01 test01   1882  7 16 15:18 composer.json
-rw-rw-r--  1 test01 test01 301825  7 16 15:18 composer.lock
drwxrwxr-x  2 test01 test01   4096  7 16 15:18 config
drwxrwxr-x  5 test01 test01   4096  7 16 15:18 database
-rw-rw-r--  1 test01 test01   1761  7 16 15:18 docker-compose.yml
-rw-rw-r--  1 test01 test01    248  7 16 15:18 package.json
-rw-rw-r--  1 test01 test01   1064  7 16 15:18 phpunit.xml
drwxrwxr-x  2 test01 test01   4096  7 16 15:18 public
drwxrwxr-x  5 test01 test01   4096  7 16 15:18 resources
drwxrwxr-x  2 test01 test01   4096  7 16 15:18 routes
drwxrwxr-x  5 test01 test01   4096  7 16 15:18 storage
drwxrwxr-x  4 test01 test01   4096  7 16 15:18 tests
-rw-rw-r--  1 test01 test01    263  7 16 15:18 vite.config.js

Dockerのインストール

gitと同様に既にDockerが導入されていました。インストールイメージに既に色々入っていて拍子抜けというかなんというか…。

Dockerバージョン

コマンド
# docker -v
Docker version 27.0.3, build 7d4bcd8

PHPのインストール

まさかのgitやdockerはインストール済みなのに、PHPは入っていなかったのでインストールします…。
Laravelのインストール記事のLaravel10の構築内容と重複しているのでさらっと書いておきます。

PHPのインストールとバージョン確認

コマンド
# apt -y install php8.3-fpm php-xml php-curl php-dom
# php -v
PHP 8.3.6 (cli) (built: Jun 13 2024 15:23:20) (NTS)
Copyright (c) The PHP Group
Zend Engine v4.3.6, Copyright (c) Zend Technologies
    with Zend OPcache v8.3.6, Copyright (c), by Zend Technologies

Composerのインストールとバージョン確認

コマンド
# php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
# php -r "if (hash_file('sha384', 'composer-setup.php') === 'dac665fdc30fdd8ec78b38b9800061b4150413ff2e3b6f88543c636f7cd84f6db9189d43a81e5503cda447da73c7e5b6') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;"
Installer verified
# php composer-setup.php
All settings correct for using Composer
Downloading...

Composer (version 2.7.7) successfully installed to: /root/composer.phar
Use it: php composer.phar

# php -r "unlink('composer-setup.php');"
# mv composer.phar /usr/local/bin/composer
# composer -V
Composer version 2.7.7 2024-06-10 22:11:12
PHP version 8.3.6 (/usr/bin/php8.3)
Run the "diagnose" command to get more detailed diagnostics output.

Laravelの起動

このままLaravelを起動しようとすると、「vendar」ディレクトリと「.env」ファイルが存在しておらず起動が出来ません。
「composer install」コマンドで必要な情報をインストールしてくれます。

composer install

コマンド
~/test-project-v10$ composer install
Installing dependencies from lock file (including require-dev)
Verifying lock file contents can be installed on current platform.
Package operations: 112 installs, 0 updates, 0 removals
  - Downloading doctrine/inflector (2.0.10)
  - Downloading doctrine/lexer (3.0.1)
  - Downloading symfony/polyfill-ctype (v1.30.0)
  - Downloading webmozart/assert (1.11.0)
~省略~
Generating optimized autoload files
> Illuminate\Foundation\ComposerScripts::postAutoloadDump
> @php artisan package:discover --ansi

   INFO  Discovering packages.

  laravel/sail ............................................................. DONE
  laravel/sanctum .......................................................... DONE
  laravel/tinker ........................................................... DONE
  nesbot/carbon ............................................................ DONE
  nunomaduro/collision ..................................................... DONE
  nunomaduro/termwind ...................................................... DONE
  spatie/laravel-ignition .................................................. DONE

83 packages you are using are looking for funding.
Use the `composer fund` command to find out more!

.envの作成

「.env.example」ファイルがサンプルですのでこちらをコピーすればひな形ができますが、今回は移行という体ですのでベースは元のサーバの「.env」をベースにしてしまいます。

コマンド
$ cp -p .env.example .env

ユーザのdockerグループ追加

どのユーザでsailを起動するかにもよりますが、起動ユーザがdockerグループに所属していないと起動権限が足りずエラーとなります。
以下のコマンドでユーザにグループを追加してあげましょう。

コマンド
# usermod -aG docker test01
# id test01
uid=1000(test01) gid=1000(test01) groups=1000(test01),4(adm),24(cdrom),27(sudo),30(dip),46(plugdev),100(users),114(lpadmin),984(docker)

プロジェクトの起動

ここまで行けば後は起動するだけです。
プロジェクトディレクトリに移動してsailを起動しましょう。

コマンド
$ cd ~/test-project-v10
$ sail up -d
~省略~
 ✔ Container test-project-v10-laravel.test-1  Started                                       1.4s

sailの起動確認

「docker ps」コマンドでコンテナの確認を行うと、無事起動しておりトップページも表示できています!

コマンド
$ docker ps
CONTAINER ID   IMAGE          COMMAND                   CREATED         STATUS                   PORTS                                                                                    NAMES
8a66a650b8c9   sail-8.3/app   "start-container"         3 minutes ago   Up 3 minutes             0.0.0.0:80->80/tcp, :::80->80/tcp, 0.0.0.0:5173->5173/tcp, :::5173->5173/tcp, 8000/tcp   test-project-v10-laravel.test-1
880991debf46   mariadb:11     "docker-entrypoint.s…"   3 minutes ago   Up 3 minutes (healthy)   0.0.0.0:3306->3306/tcp, :::3306->3306/tcp                                                test-project-v10-mariadb-1

キャプチャ.PNG

おまけ

自身の作ったアプリを移行し起動したところエラーが発生したので、npmのインストールなどを行いました。
ついでにDBのマイグレーションも忘れずに。

コマンド
$ sail php artisan migrate

   INFO  Preparing database.

  Creating migration table ........................................................... 11ms DONE

   INFO  Running migrations.

  2014_10_12_000000_create_users_table ............................................... 16ms DONE
  2014_10_12_100000_create_password_reset_tokens_table ................................ 5ms DONE
  2019_08_19_000000_create_failed_jobs_table ......................................... 13ms DONE
  2019_12_14_000001_create_personal_access_tokens_table .............................. 21ms DONE
$ sail npm install

added 146 packages, and audited 147 packages in 3s

36 packages are looking for funding
  run `npm fund` for details

found 0 vulnerabilities
$ sail npm run build

> build
> vite build

vite v5.3.3 building for production...
 54 modules transformed.
public/build/manifest.json             0.27 kB x gzip:  0.15 kB
public/build/assets/app-DrEXVF1d.css  35.79 kB x gzip:  6.69 kB
public/build/assets/app-Cs0QkU1O.js   78.50 kB x gzip: 29.14 kB
 built in 1.33s


最後に

Laravelで簡単なWebアプリが作れるので色々楽しんで作っています。
また別記事で自身の備忘のために、Laravelの簡単な流れもまとめていく予定です。
最終的にはkubernetesでLaravelを起動させる所まで実験&記事に出来たらよいなと思っています。

参考サイト

・Git を Ubuntu にインストールしてリモートリポジトリにプッシュする
https://qiita.com/studio_meowtoon/items/719e6765dd11f17a0b19

・GitHubでssh接続する手順~公開鍵・秘密鍵の生成から~
https://qiita.com/shizuma/items/2b2f873a0034839e47ce

・気をつけて!Git for Windowsにおける改行コード
https://qiita.com/uggds/items/00a1974ec4f115616580

・【入門】UbuntuにDockerをインストールする
https://www.kagoya.jp/howto/cloud/container/dockerubuntu/

・LaravelのプロジェクトをGithubからcloneして開発環境を構築する方法
https://qiita.com/jefftech/items/32694685f2afdae176fd

1
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
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?