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

資訊專欄INFORMATION COLUMN

使用 docker-compose 搭建 Laravel 環(huán)境 (三)

roadtogeek / 1269人閱讀

摘要:更換源更新源使用的源通過安裝腳本安裝應(yīng)用所需要的依賴。

有了第二篇《使用 Docker 搭建簡易的 Java Web 環(huán)境 (二)》,懂了如何通過單一鏡像創(chuàng)建 Docker 環(huán)境,這篇主要學(xué)習(xí)如何使用「docker-compose」。目標(biāo)是:搭建 Laravel 開發(fā)環(huán)境

Laravel 安裝

Laravel 讓我們書寫優(yōu)雅的代碼
為 Web 藝術(shù)家創(chuàng)造的 PHP 框架

學(xué)習(xí) Laravel,或者 PHP,不得不使用 composer。

Composer 是 PHP 的一個依賴管理工具。它允許你申明項目所依賴的代碼庫,它會在你的項目中為你安裝他們。
Composer 不是一個包管理器。是的,它涉及 "packages" 和 "libraries",但它在每個項目的基礎(chǔ)上進(jìn)行管理,在你項目的某個目錄中(例如 vendor)進(jìn)行安裝。默認(rèn)情況下它不會在全局安裝任何東西。因此,這僅僅是一個依賴管理。

這種想法并不新鮮,Composer 受到了 node"s npm 和 ruby"s bundler 的強(qiáng)烈啟發(fā)。而當(dāng)時 PHP 下并沒有類似的工具。

Composer 將這樣為你解決問題:

a) 你有一個項目依賴于若干個庫。

b) 其中一些庫依賴于其他庫。

c) 你聲明你所依賴的東西。

d) Composer 會找出哪個版本的包需要安裝,并安裝它們(將它們下載到你的項目中)。
參考:http://docs.phpcomposer.com/00-intro.html

composer

1.使用 php 命令安裝

php -r "copy("https://getcomposer.org/installer", "composer-setup.php");"
php -r "if (hash_file("SHA384", "composer-setup.php") === "544e09ee996cdf60ece3804abc52599c22b1f40f4323403c44d44fdfdd586475ca9813a858088ffbc1f233e9b180f061") { echo "Installer verified"; } else { echo "Installer corrupt"; unlink("composer-setup.php"); } echo PHP_EOL;"
php composer-setup.php
php -r "unlink("composer-setup.php");"

更多查看:https://getcomposer.org/download/

2.使用 Packagist / Composer 中國全量鏡像加速

修改 composer 的全局配置文件(推薦方式)

composer config -g repo.packagist composer https://packagist.phpcomposer.com

更多查看:https://pkg.phpcomposer.com/

3.并行 composer install

composer global require hirak/prestissimo

下載如有神助?。。?/p> 創(chuàng)建 Laravel 項目

可以通過 Laravel 安裝工具:

composer global require "laravel/installer"

然后就可以使用 laravel new 命令安裝 Laravel 項目了,如:

laravel new blog

也可以通過 composer 創(chuàng)建:

composer create-project --prefer-dist laravel/laravel blog

更多查看:https://d.laravel-china.org/docs/5.4/installation

構(gòu)建 php + apache 鏡像

1.選擇 DaoCloud 提供的 PHP 鏡像作為項目的基礎(chǔ)鏡像。

FROM daocloud.io/php:7.1.8-apache

2.更換 163 源:

#更新apt-get源 使用163的源
RUN mv /etc/apt/sources.list /etc/apt/sources.list.bak && 
   echo "deb http://mirrors.163.com/debian/ jessie main non-free contrib" >/etc/apt/sources.list && 
   echo "deb http://mirrors.163.com/debian/ jessie-proposed-updates main non-free contrib" >>/etc/apt/sources.list && 
   echo "deb-src http://mirrors.163.com/debian/ jessie main non-free contrib" >>/etc/apt/sources.list && 
   echo "deb-src http://mirrors.163.com/debian/ jessie-proposed-updates main non-free contrib" >>/etc/apt/sources.list

3.通過安裝腳本安裝 Laravel 應(yīng)用所需要的 PHP 依賴。

# APT 自動安裝 PHP 相關(guān)的依賴包,如需其他依賴包在此添加
RUN apt-get update 
    && apt-get install -y 
        libmcrypt-dev 
        libz-dev 
        git 
        wget 
        libpcre3-dev 

    # 官方 PHP 鏡像內(nèi)置命令,安裝 PHP 依賴
    && docker-php-ext-install 
        mcrypt 
        mbstring 
        pdo_mysql 
        zip 

    # 用完包管理器后安排打掃衛(wèi)生可以顯著的減少鏡像大小
    && apt-get clean 
    && apt-get autoclean 
    && rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* 

    # 安裝 Composer,此物是 PHP 用來管理依賴關(guān)系的工具
    && curl -sS https://getcomposer.org/installer 
        | php -- --install-dir=/usr/local/bin --filename=composer 
        
    # 國內(nèi)鏡像加速
    && composer config -g repo.packagist composer https://packagist.phpcomposer.com
    && composer global require hirak/prestissimo

4.創(chuàng)建 Laravel 目錄結(jié)構(gòu):

# 開啟 URL 重寫模塊
# 配置默認(rèn)放置 App 的目錄
RUN a2enmod rewrite 
    && mkdir -p /app 
    && rm -fr /var/www/html 
    && ln -s /app/public /var/www/html

WORKDIR /app

5.加載 composer 依賴包

# 預(yù)先加載 Composer 包依賴,優(yōu)化 Docker 構(gòu)建鏡像的速度
COPY ./composer.json /app/
COPY ./composer.lock /app/
RUN composer install  --no-autoloader --no-scripts

最終整個 Dockerfile 如下所示:

FROM daocloud.io/php:7.1.8-apache

#更新apt-get源 使用163的源
RUN mv /etc/apt/sources.list /etc/apt/sources.list.bak && 
    echo "deb http://mirrors.163.com/debian/ jessie main non-free contrib" >/etc/apt/sources.list && 
    echo "deb http://mirrors.163.com/debian/ jessie-proposed-updates main non-free contrib" >>/etc/apt/sources.list && 
    echo "deb-src http://mirrors.163.com/debian/ jessie main non-free contrib" >>/etc/apt/sources.list && 
    echo "deb-src http://mirrors.163.com/debian/ jessie-proposed-updates main non-free contrib" >>/etc/apt/sources.list

# APT 自動安裝 PHP 相關(guān)的依賴包,如需其他依賴包在此添加
RUN apt-get update 
    && apt-get install -y 
        libmcrypt-dev 
        libz-dev 
        git 
        wget 
        libpcre3-dev 

    # 官方 PHP 鏡像內(nèi)置命令,安裝 PHP 依賴
    && docker-php-ext-install 
        mcrypt 
        mbstring 
        pdo_mysql 
        zip 


    # 用完包管理器后安排打掃衛(wèi)生可以顯著的減少鏡像大小
    && apt-get clean 
    && apt-get autoclean 
    && rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* 

    # 安裝 Composer,此物是 PHP 用來管理依賴關(guān)系的工具
    && curl -sS https://getcomposer.org/installer 
        | php -- --install-dir=/usr/local/bin --filename=composer 
    # 國內(nèi)鏡像加速
    && composer config -g repo.packagist composer https://packagist.phpcomposer.com 
    && composer global require hirak/prestissimo


# 開啟 URL 重寫模塊
# 配置默認(rèn)放置 App 的目錄
RUN a2enmod rewrite 
    && mkdir -p /app 
    && rm -fr /var/www/html 
    && ln -s /app/public /var/www/html

WORKDIR /app

# 預(yù)先加載 Composer 包依賴,優(yōu)化 Docker 構(gòu)建鏡像的速度
COPY ./composer.json /app/
COPY ./composer.lock /app/
RUN composer install  --no-autoloader --no-scripts

# 復(fù)制代碼到 App 目錄
COPY . /app

# 執(zhí)行 Composer 自動加載和相關(guān)腳本
# 修改目錄權(quán)限
RUN composer install 
    && chown -R www-data:www-data /app 
    && chmod -R 0777 /app/storage

如果根據(jù)上一篇文章的寫法,修改.env 將數(shù)據(jù)庫指向上一篇所寫的 MySQL 容器,然后產(chǎn)生鏡像,最后創(chuàng)建容器,運(yùn)行起來,但這不是本文的目標(biāo),本文的目標(biāo)是利用「docker composer」來結(jié)合多個鏡像,配置 Laravel 環(huán)境。

Compose is a tool for defining and running multi-container Docker applications. With Compose, you use a Compose file to configure your application’s services. Then, using a single command, you create and start all the services from your configuration.

所以下一步需要編寫「docker-compose.yml」文檔

「docker-compose.yml」文檔

直接看代碼了,容易理解

version: "3"

services:
  app:
    build: .
    restart: always
    depends_on:
      - mysql
    ports:
       - "8000:80"
    networks:
      - app

  mysql:
    image: daocloud.io/mysql:latest
    volumes:
      - db_data:/var/lib/mysql
    restart: always
    environment:
      MYSQL_ROOT_PASSWORD: somewordpress
      MYSQL_DATABASE: homestead
      MYSQL_USER: homestead
      MYSQL_PASSWORD: secret
    ports:
      - 8002:3306
    networks:
      - app
networks:
  app:
volumes:
  db_data:

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

docker-compose up -d

執(zhí)行結(jié)果如下:

在瀏覽器輸入:http://localhost:8000,運(yùn)行如下:

總結(jié)

這里還剩下一個小尾巴有待于各位去檢驗:創(chuàng)建了 MySQL 容器,但具體和 Laravel 項目怎么結(jié)合?

注:由于通過命令 laravel new 創(chuàng)建 blog 項目時,就已經(jīng)把 composer 依賴包下載回來了,由于大家的本地環(huán)境和 docker 環(huán)境不一致,所以我把 vendor 整個文件夾刪除了,這也好理解,因為我們和別人配合時,在版本庫中也不會有 vendor 依賴包文件夾的。

「docker-compose.yml」文檔寫法規(guī)則請聽下回分解

附:使用 MySQL 鏡像

啟動一個 MySQL 實例非常簡單:

docker run -d -p 3306:3306 -e MYSQL_ROOT_PASSWORD=000000 -e MYSQL_DATABASE=yemeishu_database daocloud.io/mysql:latest

我們進(jìn)入該容器看看,是不是已經(jīng)創(chuàng)建了數(shù)據(jù)庫:yemeishu_database,以及是否設(shè)置了 root 的密碼為:000000。

如果使用數(shù)據(jù)庫客戶端,也可以看到創(chuàng)建的數(shù)據(jù)庫:yemeishu_database


感謝您能看到這了

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

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

相關(guān)文章

  • 使用 docker-compose 搭建 Laravel 環(huán)境 ()

    摘要:更換源更新源使用的源通過安裝腳本安裝應(yīng)用所需要的依賴。 showImg(https://segmentfault.com/img/remote/1460000011106825); 有了第二篇《使用 Docker 搭建簡易的 Java Web 環(huán)境 (二)》,懂了如何通過單一鏡像創(chuàng)建 Docker 環(huán)境,這篇主要學(xué)習(xí)如何使用「docker-compose」。目標(biāo)是:搭建 Laravel...

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

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

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

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

    yagami 評論0 收藏0

發(fā)表評論

0條評論

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