国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

自建 Laravel 的 Docker 開發(fā)環(huán)境

yanbingyun1990 / 3189人閱讀

摘要:好久沒寫東西,今天說一說怎么自建一個運行的環(huán)境。注該鏡像是由社區(qū)聯(lián)合又拍云與優(yōu)帆遠(yuǎn)揚共同合作推出的公益項目,旨在為廣大用戶提供穩(wěn)定和高速的國內(nèi)鏡像服務(wù)。通過自建開發(fā)環(huán)境過程中,也能讓自己學(xué)到更多。接下來還會不斷完善,最小化滿足開發(fā)需要。

好久沒寫東西,今天說一說怎么自建一個 Laravel 運行的 Docker 環(huán)境。

市面上最出名的莫過于「laradock」https://github.com/laradock/laradock

Docker PHP development environment.
使用參考:http://laradock.io

既然是「自建」,那我們可以參考這個,最小化滿足 Laravel 運行的需要。

下面是我羅列出的基本條件:

軟件:PHP 7.2、Nginx、MySQL、Composer、NPM or Yarn 等等;

使用國內(nèi)鏡像;使用國內(nèi)鏡像;使用國內(nèi)鏡像;

易于擴(kuò)展使用,如隨時可以切換 PHP 版本,或者 Apache 和 Nginx 切換使用。

Docker-Compose

要達(dá)到可擴(kuò)展行,和「laradock」一樣,使用 Docker-Compose 編排的方式,將核心的幾個 image 組裝在一起。

php-fpm

這里我們使用的是「DaoCloud」加速鏡像 —— 7.2-fpm-alpine

該版本既用 PHP 7.2 版本,而且 alpine 最小化系統(tǒng),可以基于此,安裝環(huán)境需要的額外工具:如,composernodejspythonyarn 等。

FROM daocloud.io/php:7.2-fpm-alpine

MAINTAINER coding01 

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 為國內(nèi)鏡像
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

其中安裝 alpine 系統(tǒng)插件,我們使用 mirrors.aliyun.com 阿里云鏡像。

php:7.2-fpm-alpine 具體使用,可以參考:https://dashboard.daocloud.io/packages/019c8dce-ec80-4468-bddc-254fc62ef5c7

nginx

我們使用 nginx,主要是將網(wǎng)站的配置文件載入 nginx 中。

FROM daocloud.io/nginx:1.13-alpine

MAINTAINER coding01 

ADD vhost.conf /etc/nginx/conf.d/default.conf

WORKDIR /var/www

剩下就是連接這些 images。最后看看 docker-compose.yml 文件內(nèi)容:

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:
測試一遍 創(chuàng)建 Laravel 項目
composer create-project laravel/laravel demo

注:為了做測試,可以將 vendor 文件夾和 composer.lock 文件刪除。

git clone

demo 項目相同文件夾下,git clone 我們自建的「laraveldocker」:

git clone https://github.com/fanly/laraveldocker.git
修改 docker-compose.yml

docker-compose.yml 文件的路徑執(zhí)行我們的項目:

app:
    build:
      context: ./
      dockerfile: app.dockerfile
    working_dir: /var/www
    volumes:
      - ../:/var/www
build

laraveldocker 下執(zhí)行構(gòu)建命令:

docker-compose up

整個速度還是蠻快的

接下來進(jìn)入容器內(nèi)

docker exec -it de075c525528 bash

我們看看安裝插件的效果:

使用的是 https://packagist.laravel-china.org 國內(nèi)鏡像。

注:該鏡像是由 Laravel China 社區(qū)聯(lián)合 又拍云 與 優(yōu)帆遠(yuǎn)揚 共同合作推出的公益項目,旨在為廣大 PHP 用戶提供穩(wěn)定和高速的 Composer 國內(nèi)鏡像服務(wù)。

值得推薦使用

參考:http://laravel-china.org/topics/4484/composer-mirror-use-help

使用 yarn 或者 cnpm 安裝插件:

生成 Laravel key secret

cp .env.example .env
php artisan key:generate

Application key [base64:4A7VK6MEX7FakPLDSLji97kz/nyWUAWhW4wYn3gefsY=] set successfully.

運行下看看效果吧:

我們接下來看看數(shù)據(jù)庫連接吧,修改 .env

DB_CONNECTION=mysql
DB_HOST=database
DB_PORT=3306
DB_DATABASE=homestead
DB_USERNAME=homestead
DB_PASSWORD=secret

我們使用 php artisan make:auth 來生成布局、注冊和登錄視圖以及所有的認(rèn)證接口的路由。同時它還會生成 HomeController 來處理應(yīng)用的登錄請求。使用 php artisan migrate 來載入數(shù)據(jù)。

我們看看數(shù)據(jù)表:

至此,說明我們連接 MySQL 數(shù)據(jù)庫 OK.

總結(jié)

在學(xué)習(xí)過程中,使用別人做好的 Dockerfile,雖可以直接拿來使用,但如果能自給自足,那最好不過了。

通過自建 docker 開發(fā)環(huán)境過程中,也能讓自己學(xué)到更多。接下來還會不斷完善,最小化滿足開發(fā)需要。

代碼已放在 github 上,歡迎參考和提出 issue

https://github.com/fanly/laraveldocker

最后也可以看之前對 「Laradock」的使用文章:

通過 Laradock 學(xué) Docker —— 配置篇

通過 Laradock 學(xué) Docker-HTTPS

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/27373.html

相關(guān)文章

  • 自建 Laravel Docker 開發(fā)環(huán)境

    摘要:好久沒寫東西,今天說一說怎么自建一個運行的環(huán)境。注該鏡像是由社區(qū)聯(lián)合又拍云與優(yōu)帆遠(yuǎn)揚共同合作推出的公益項目,旨在為廣大用戶提供穩(wěn)定和高速的國內(nèi)鏡像服務(wù)。通過自建開發(fā)環(huán)境過程中,也能讓自己學(xué)到更多。接下來還會不斷完善,最小化滿足開發(fā)需要。 showImg(https://segmentfault.com/img/remote/1460000015722901); 好久沒寫東西,今天說一說...

    Yujiaao 評論0 收藏0
  • 使用 Docker 搭建 Laravel 本地環(huán)境

    摘要:本文就介紹如何使用搭建本地環(huán)境。講座介紹是現(xiàn)在火熱的一個容器技術(shù),作為開發(fā)人員有必要掌握它的使用,無論你是用來搭建本地環(huán)境,還是部署應(yīng)用。 (原文地址:https://blog.tanteng.me/2017/...) Laravel 官方提供 Homestead 和 Valet 作為本地開發(fā)環(huán)境,Homestead 是一個官方預(yù)封裝的 Vagrant Box,也就是一個虛擬機(jī),但是跟...

    StonePanda 評論0 收藏0
  • 使用 Docker 搭建 Laravel 本地環(huán)境

    摘要:本文就介紹如何使用搭建本地環(huán)境。講座介紹是現(xiàn)在火熱的一個容器技術(shù),作為開發(fā)人員有必要掌握它的使用,無論你是用來搭建本地環(huán)境,還是部署應(yīng)用。 (原文地址:https://blog.tanteng.me/2017/...) Laravel 官方提供 Homestead 和 Valet 作為本地開發(fā)環(huán)境,Homestead 是一個官方預(yù)封裝的 Vagrant Box,也就是一個虛擬機(jī),但是跟...

    lscho 評論0 收藏0
  • PHP開發(fā)環(huán)境03 - 使用KFKDock搭建PHP項目環(huán)境

    摘要:基于快速搭建服務(wù)根據(jù)自定義配置文件快速搭建環(huán)境。目錄此項目能做什么地址視頻教程包含軟件項目目錄結(jié)構(gòu)快速運行運行服務(wù)運行項目運行前端服務(wù)此項目能做什么搭建開發(fā)生產(chǎn)環(huán)境。搭建開發(fā)生產(chǎn)環(huán)境。 基于Docker快速搭建Web服務(wù) 根據(jù)自定義配置文件快速搭建Web環(huán)境。 目錄 此項目能做什么 GItHub地址、視頻教程 包含軟件 項目目錄結(jié)構(gòu) 快速運行KFKDock 運行PHP服務(wù) 運行L...

    Zhuxy 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<