Docker を使用した Laravel アプリケーションのデプロイ例

Docker を使用した Laravel アプリケーションのデプロイ例
  • この記事で使用されているPHPベースイメージはphp:7.3-apacheです。
  • この記事の Laravel バージョンは、laravel:5.8.* です。
  • 次の記事ではキューとタスクスケジューリングについて書きます。

1. Laravelアプリケーションを準備する

# mix コマンドを実行して、js、css、img ファイルをパッケージ化します。mix を使用しない場合は、npm install をスキップできます。
npm で本番環境を実行
# composer.lock に依存関係をインストールします。composer install --ignore-platform-reqs --optimize-autoloader --no-dev

2. Apache設定ファイルdocker/000-default.confを準備する

<仮想ホスト *:80>
 # ServerNameディレクティブは、リクエストスキーム、ホスト名、ポートを設定します。
 # サーバーが自身を識別するために使用します。これは作成時に使用されます
 # リダイレクトURL。仮想ホストのコンテキストでは、ServerName
 # リクエストのHost:ヘッダーにどのホスト名が表示されるかを指定します
 # この仮想ホストに一致します。デフォルトの仮想ホスト(このファイル)の場合、この
 # 値は、最後の手段としてホストとして使用されるので、決定的ではありません。
 # ただし、それ以降の仮想ホストに対しては明示的に設定する必要があります。
 #サーバー名 www.example.com

 サーバー管理者 [email protected]
 ドキュメントルート /var/www/html/public

 # 利用可能なログレベル: trace8、...、trace1、debug、info、notice、warn、
 # エラー、クリティカル、アラート、緊急。
 # 特定のログレベルを設定することもできます
 # モジュール、例:
 #ログレベル情報 ssl:warn

 エラーログ ${APACHE_LOG_DIR}/error.log
 CustomLog ${APACHE_LOG_DIR}/access.log を組み合わせたもの

 # conf-available/のほとんどの設定ファイルは、
 # グローバルレベルで有効または無効にするには、
 # 特定の仮想ホストのみの行を含めます。たとえば、
 # 次の行は、このホストのみのCGI設定を有効にします
 # 「a2disconf」でグローバルに無効にされた後。
 #conf-available/serve-cgi-bin.conf を含める
</仮想ホスト>

3. Dockerfileを準備する

php:7.3-apache より

ラベルメンテナー="[email protected]"

# タイムゾーンを設定 ARG TZ=Asia/Shanghai
ENV TZ ${TZ}
実行 ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone

# ソフトウェア cron をインストールする
実行set -eux \
 && apt-get アップデート \
 && apt-get install -y --no-install-recommends cron \
 && apt-get 自動削除 \
 && apt-get autoclean \
 && apt-get clean \
 && rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/*
 
# 拡張機能をインストールする ENV PHP_EXTENSION \
 pdo_mysql \
 数学
ENV PECL_EXTENSION \
 レディス
docker-php-ext-install $PHP_EXTENSION を実行します。
 && pecl インストール $PECL_EXTENSION \
 && docker-php-ext-enable $PECL_EXTENSION \
    opcache \
 && a2enmod の書き換え
 
# アクセスポート EXPOSE 80

ARG APP_ENV=開発
ENV APP_ENV ${APP_ENV}

コピー --chown=www-data:www-data . /var/www/html
docker/000-default.conf を /etc/apache2/sites-available/000-default.conf にコピーします。
ワークディレクトリ /var/www/html

4. Dockerignore ファイルを準備する: .dockerignore (オプション)

/ノードモジュール
ドッカー
/Dockerファイル

5. イメージエントリファイルを準備する: docker-entrypoint.sh (オプション)

このファイルには実行権限が必要ですが、このエントリ ファイルは必須ではありません。これは、アプリケーションの実行前にいくつかのキャッシュ コマンドを実行するためのものです。詳細については、ここをクリックしてください。

#!/usr/bin/env バッシュ

php アーティザン キャッシュ:クリア
php artisan config:キャッシュ
php 職人ルート:キャッシュ
php 職人ビュー:キャッシュ

apache2-フォアグラウンド

6. イメージを実行する

docker run -p 80:80 を実行します。

以上がこの記事の全内容です。皆様の勉強のお役に立てれば幸いです。また、123WORDPRESS.COM を応援していただければ幸いです。

以下もご興味があるかもしれません:
  • dockerでlaravel開発環境をインストールする方法の詳細な説明
  • Dockerを使用してローカルLaravel環境を構築する詳細なチュートリアル
  • Docker Compose を使用して Laravel アプリケーションをオーケストレーションする方法
  • Dockerを使用してLaravelおよびVueプロジェクトの開発環境を構築する詳細な説明
  • Docker はキューとタスクのスケジューリングを実現するために Laravel アプリケーションをデプロイします
  • Dockerを使用してLaravel開発環境を構築するための完全な手順

<<:  MySQL 5.7.23 winx64 のインストールと設定方法のグラフィックチュートリアル (win10 の場合)

>>:  Vueプロジェクトでスケルトンスクリーンを使用する方法

推薦する

MySQL Server 8.0.13.0 インストールチュートリアル(画像とテキスト付き)

MySQL 6.1.3 をベースにした 8.0.13 をインストールします。 MySQL 8.0....

CSS で要素フローティングとクリアフローティングを実装する方法

フローティングの基礎標準ドキュメント フローでは、要素は塊級元素と行內元素の 2 種類に分けられます...

共有サイドバーを実装するためのネイティブJS

この記事では、ネイティブ JS で実装された共有サイドバーを紹介します。効果は次のとおりです。 以下...

Linux suse11でルートパスワードを忘れた場合に変更する方法の簡単な分析

SUSE Linuxでルートパスワードを忘れた場合の解決方法SUSE (Linux オペレーティング...

MySQL 外部キー制約の一般的な操作の例 [表示、追加、変更、削除]

この記事では、例を使用して、MySQL 外部キー制約の一般的な操作について説明します。ご参考までに、...

NodeとPythonの双方向通信実装コード

目次プロセスコミュニケーションプロセス間の双方向通信問題要約するサードパーティのデータ サプライヤー...

MySQL データ ウェアハウスを保護するための 5 つのヒント

さまざまなソースからデータを集約することで、中央倉庫を作成できます。データ ウェアハウスは、ビジネス...

Vue イメージ ドラッグ アンド ドロップ ズーム コンポーネントの使用方法の詳細な説明

Vueイメージドラッグアンドドロップズームコンポーネントの具体的な使い方は参考までに。具体的な内容は...

Vue+Elementバックグラウンド管理フレームワークの統合実践

目次Vue+ElementUI バックグラウンド管理フレームワークでは、ElementUI とは何で...

CSS3 で Taobao に空白スペースを実装する方法

Taobao用の空白スペースを作成します。 ブラウザページを縮小すると、コンテンツ領域は縮小されませ...

HTML マウス CSS コントロール

一般的に、マウスは上向きの斜め矢印として表示され、テキストの上に移動すると垂直線になり、ハイパーリン...

MySQLチュートリアルではストアドプロシージャを徹底的に理解します

目次1. ストアドプロシージャに関連する概念2. ストアドプロシージャの使用1) ストアドプロシージ...

スタートアップ企業が丹念に作り上げた優れたウェブデザイン17選

スタートアップ企業は、型破りな仕事のやり方、ユニークなビジネスモデル、特徴的な製品やサービス、パーソ...

mysql 変数の使用例の分析 [システム変数、ユーザー変数]

この記事では、例を使用して MySQL 変数の使用方法を説明します。ご参考までに、詳細は以下の通りで...