この記事の内容は、Laravel の Docker 開発環境の構築に関するものですが、一定の参考価値があるので、困っている友人は参考にしてください。
長い間何も書いていませんでしたが、今日はLaravelを動かすためのDocker環境の構築方法についてお話します。
市場で最も有名なものは「laradock」です https://github.com/laradock/laradock
Docker PHP 開発環境
使用方法のリファレンス: http: / /laradock.io
「自作」なので、これを参照することでLaravelの操作を最小限に抑えることができます。
以下は、私がリストした基本的な条件です:
ソフトウェア: PHP 7.2、Nginx、MySQL、Composer、NPM または Yarn など;
国内ミラーリングを使用します。
Docker-Compose
ここでは、「DaoCloud」アクセラレーション イメージ -
7.2-fpm-alpineこのバージョンでは、PHP 7.2
バージョンと
最小化システムの両方が使用されています。これに基づいて、環境に必要な追加のツールをインストールできます: composer
、nodejs
、python
、yarn
など。 <div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false">FROM daocloud.io/php:7.2-fpm-alpine
MAINTAINER coding01 <yemeishu@126.com>
RUN sed -i 's/dl-cdn.alpinelinux.org/mirrors.aliyun.com/g' /etc/apk/repositories
RUN apk add --no-cache --virtual .build-deps \
$PHPIZE_DEPS \
curl-dev \
imagemagick-dev \
libtool \
libxml2-dev \
postgresql-dev \
sqlite-dev \
&& apk add --no-cache \
curl \
git \
imagemagick \
mysql-client \
postgresql-libs \
&& pecl install imagick \
&& docker-php-ext-enable imagick \
&& docker-php-ext-install \
curl \
iconv \
mbstring \
pdo \
pdo_mysql \
pdo_pgsql \
pdo_sqlite \
pcntl \
tokenizer \
xml \
zip \
&& curl -s https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin/ --filename=composer \
&& apk del -f .build-deps
# 修改 composer 为国内镜像
RUN composer config -g repo.packagist composer https://packagist.laravel-china.org
# install prestissimo
RUN composer global require "hirak/prestissimo"
# install laravel envoy
RUN composer global require "laravel/envoy"
#install laravel installer
RUN composer global require "laravel/installer"
RUN sed -i 's/dl-cdn.alpinelinux.org/mirrors.aliyun.com/g' /etc/apk/repositories
RUN apk update && apk add -u nodejs libpng-dev python
ENV PATH /root/.yarn/bin:$PATH
RUN apk update \
&& apk add curl bash binutils tar \
&& rm -rf /var/cache/apk/* \
&& /bin/bash \
&& touch ~/.bashrc \
&& curl -o- -L https://yarnpkg.com/install.sh | bash \
&& yarn config set registry 'https://registry.npm.taobao.org' \
&& npm install -g cnpm --registry=https://registry.npm.taobao.org
WORKDIR /var/www</pre><div class="contentsignin">ログイン後にコピー</div></div>
alpine
システム プラグインをインストールするには、
Alibaba Cloud ミラーを使用します。 php:7.2-fpm-alpine
具体的な使用方法については、https://dashboard.daocloud.io/packages/019c8dce-ec80-4468-bddc-254fc62ef5c7## を参照してください。
nginx
FROM daocloud.io/nginx:1.13-alpine MAINTAINER coding01 <yemeishu@126.com> ADD vhost.conf /etc/nginx/conf.d/default.conf WORKDIR /var/www
残りはこれらの画像を接続することです。最後に、
docker-compose.yml ファイルの内容を見てみましょう:
version: '2' services: # The Application app: build: context: ./ dockerfile: app.dockerfile working_dir: /var/www volumes: - ../:/var/www environment: - "DB_PORT=3306" - "DB_HOST=database" - "REDIS_HOST=redis" - "REDIS_PORT=6379" # The Web Server web: build: context: ./ dockerfile: web.dockerfile working_dir: /var/www volumes_from: - app ports: - 8080:80 # The Database database: image: daocloud.io/mysql:5.7.4 volumes: - dbdata:/var/lib/mysql environment: - "MYSQL_DATABASE=homestead" - "MYSQL_USER=homestead" - "MYSQL_PASSWORD=secret" - "MYSQL_ROOT_PASSWORD=secret" ports: - "3306:3306" redis: image: daocloud.io/library/redis:4.0.10-alpine command: redis-server --appendonly yes volumes: dbdata:
Laravel プロジェクトを作成します
composer create-project laravel/laravel demo
composer.lock ファイルを削除できます。 git clone
demo
git clone https://github.com/fanly/laraveldocker.git
docker-compose.yml
ファイルのパスを使用してプロジェクトを実行します:
app: build: context: ./ dockerfile: app.dockerfile working_dir: /var/www volumes: - ../:/var/www
laraveldocker 以下でビルド コマンドを実行します。
docker-compose up
全体の速度は非常に高速です
docker exec -it de075c525528 bash
https://packagist.laravel-china.org
国内ミラー。注: このミラーは、Laravel China コミュニティである Youpaiyun と Youfanyuanyang が共同で立ち上げた公共福祉プロジェクトであり、安定した高速な Composer 国内ミラーリング サービスを大多数の PHP ユーザーに提供することを目的としています。
使用することをお勧めします
参考: http://laravel-china.org/topics/4484/composer-mirror-use-help
yarnまたは
cnpmプラグインのインストール:
Laravel キー シークレット
の生成:
cp .env.example .env php artisan key:generate Application key [base64:4A7VK6MEX7FakPLDSLji97kz/nyWUAWhW4wYn3gefsY=] set successfully.
Run 効果を見てみましょう:
.env を変更します:
DB_CONNECTION=mysql DB_HOST=database DB_PORT=3306 DB_DATABASE=homestead DB_USERNAME=homestead DB_PASSWORD=secret
を使用して、すべての認証インターフェイスのレイアウト、登録、ログイン ビューとルートを生成します。同時に、アプリケーションのログイン要求を処理するための HomeController
も生成します。データをロードするには、php 職人移行を使用します。
データ テーブルを見てみましょう:
この時点では、接続されていることを示しています
MySQL
学習プロセスでは、他の人が作成した Dockerfile を使用するのが最善です。直接使うのであれば、自己完結できれば一番いいのですが。
関連する推奨事項:
以上がLaravel 用の Docker 開発環境を自分で構築する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。