您好,欢迎访问一九零五行业门户网

自己搭建一个 Laravel 的 Docker的开发环境的方法

这篇文章给大家分享的内容是关于自己搭建一个 laravel 的 docker的开发环境,有一定的参考价值,有需要的朋友可以参考一下。
好久没写东西,今天说一说怎么自建一个 laravel 运行的 docker 环境。
市面上最出名的莫过于「laradock」https://github.com/laradock/laradock
docker php development environment.
使用参考:http://laradock.io
既然是「自建」,那我们可以参考这个,最小化满足 laravel 运行的需要。
下面是我罗列出的基本条件:
软件:php 7.2、nginx、mysql、composer、npm or yarn 等等;
使用国内镜像;使用国内镜像;使用国内镜像;
易于扩展使用,如随时可以切换 php 版本,或者 apache 和 nginx 切换使用。
docker-compose要达到可扩展行,和「laradock」一样,使用 docker-compose 编排的方式,将核心的几个 image 组装在一起。
php-fpm这里我们使用的是「daocloud」加速镜像 —— 7.2-fpm-alpine。
该版本既用 php 7.2 版本,而且 alpine 最小化系统,可以基于此,安装环境需要的额外工具:如,composer、nodejs、python、yarn 等。
from daocloud.io/php:7.2-fpm-alpinemaintainer coding01 <yemeishu@126.com>run sed -i 's/dl-cdn.alpinelinux.org/mirrors.aliyun.com/g' /etc/apk/repositoriesrun 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 prestissimorun composer global require hirak/prestissimo# install laravel envoyrun composer global require laravel/envoy#install laravel installerrun composer global require laravel/installerrun sed -i 's/dl-cdn.alpinelinux.org/mirrors.aliyun.com/g' /etc/apk/repositoriesrun apk update && apk add -u nodejs libpng-dev pythonenv path /root/.yarn/bin:$pathrun 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.orgworkdir /var/www
其中安装 alpine 系统插件,我们使用 mirrors.aliyun.com 阿里云镜像。
php:7.2-fpm-alpine 具体使用,可以参考:https://dashboard.daocloud.io/packages/019c8dce-ec80-4468-bddc-254fc62ef5c7
nginx我们使用 nginx,主要是将网站的配置文件载入 nginx 中。
from daocloud.io/nginx:1.13-alpinemaintainer coding01 <yemeishu@126.com>add vhost.conf /etc/nginx/conf.d/default.confworkdir /var/www
剩下就是连接这些 images。最后看看 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 yesvolumes:  dbdata:
测试一遍创建 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 文件的路径执行我们的项目:
app:    build:      context: ./      dockerfile: app.dockerfile    working_dir: /var/www    volumes:      - ../:/var/www
build在 laraveldocker 下执行构建命令:
docker-compose up
整个速度还是蛮快的
接下来进入容器内
docker exec -it de075c525528 bash
我们看看安装插件的效果:
使用的是 https://packagist.laravel-china.org 国内镜像。
注:该镜像是由 laravel china 社区联合 又拍云 与 优帆远扬 共同合作推出的公益项目,旨在为广大 php 用户提供稳定和高速的 composer 国内镜像服务。值得推荐使用
参考:http://laravel-china.org/topics/4484/composer-mirror-use-help
使用 yarn 或者 cnpm 安装插件:
生成 laravel key secret:
cp .env.example .envphp artisan key:generateapplication key [base64:4a7vk6mex7fakpldslji97kz/nywuawhw4wyn3gefsy=] set successfully.
运行下看看效果吧:
我们接下来看看数据库连接吧,修改 .env:
db_connection=mysqldb_host=databasedb_port=3306db_database=homesteaddb_username=homesteaddb_password=secret
我们使用 php artisan make:auth 来生成布局、注册和登录视图以及所有的认证接口的路由。同时它还会生成 homecontroller 来处理应用的登录请求。使用 php artisan migrate 来载入数据。
我们看看数据表:
至此,说明我们连接 mysql 数据库 ok.
总结在学习过程中,使用别人做好的 dockerfile,虽可以直接拿来使用,但如果能自给自足,那最好不过了。
通过自建 docker 开发环境过程中,也能让自己学到更多。接下来还会不断完善,最小化满足开发需要。
相关推荐:
tp5中url访问模式的解析
nginx配置的详细代码
以上就是自己搭建一个 laravel 的 docker的开发环境的方法的详细内容。
其它类似信息

推荐信息