我的编程空间,编程开发者的网络收藏夹
学习永远不晚

docker部署laravel

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

docker部署laravel

知识铺垫

首先拉取官方镜像,标签为 8.2-fpm

使用命令 docker pull php:8.2-fpm 拉取镜像

启动 php 容器


使用命令

docker run --name myphp-fpm -v /root/nginx/www:/www -itd php:8.2-fpm

其中 --name myphp-fpm : 将容器命名为 myphp-fpm

-v /root/nginx/www:/www : 将主机中项目的目录 www 挂载到容器的 /www

创建目录 mkdir -p /root/nginx/conf/conf.d

在该目录下添加 /root/nginx/conf/conf.d/test-php.conf 文件,内容如下:

server {    listen       80;    server_name  localhost;    location / {        root   /usr/share/nginx/html;        index  index.html index.htm index.php;    }    error_page   500 502 503 504  /50x.html;    location = /50x.html {        root   /usr/share/nginx/html;    }    location ~ \.php$ {        fastcgi_pass   php:9000;        fastcgi_index  index.php;        fastcgi_param  SCRIPT_FILENAME  /www/$fastcgi_script_name;        include        fastcgi_params;    }}


配置文件说明:

php:9000: 表示 php-fpm 服务的 URL。
/www/: 是 myphp-fpm 中 php 文件的存储路径,映射到本地的 /root/nginx/www 目录。


启动 nginx 容器

docker run --name php-nginx -p 8088:80 -d \    -v /root/nginx/www:/usr/share/nginx/html:ro \    -v /root/nginx/conf/conf.d:/etc/nginx/conf.d:ro \    --link myphp-fpm:php \    nginx


参数说明

-p 8088:80: 端口映射,把 nginx 中的 80 映射到本地的 8088 端口。
~/nginx/www: 是本地 html 文件的存储目录,/usr/share/nginx/html 是容器内 html 文件的存储目录。
~/nginx/conf/conf.d: 是本地 nginx 配置文件的存储目录,/etc/nginx/conf.d 是容器内 nginx 配置文件的存储目录。
–link myphp-fpm:php: 把 myphp-fpm 的网络并入 nginx,并通过修改 nginx 的 /etc/hosts,把域名 php 映射成 127.0.0.1,让 nginx 通过 php:9000 访问 php-fpm。
接下来我们在 /root/nginx/www 目录下创建 index.php,代码如下:

echo phpinfo();
?>
访问域名,可成功访问表示环境配置成功

docker 安装 mysql


使用命令

docker pull mysql:latest

 拉取 mysql 最新版本镜像

使用命令

 docker run -itd --name mysql-test -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 mysql 

运行容器

-p 3306:3306 :映射容器服务的 3306 端口到宿主机的 3306 端口,外部主机可以直接通过 宿主机 ip:3306 访问到 MySQL 的服务。

MYSQL_ROOT_PASSWORD=123456

:设置 MySQL 服务 root 用户的密码。
可以使用命令 docker exec -it mysql-test mysql -hlocalhost -uroot -p 访问 mysql 容器


创建远程访问账号

CREATE USER ‘test‘@’%’ IDENTIFIED WITH mysql_native_password BY ‘123456’;


账号授权:

GRANT ALL PRIVILEGES ON . TO ‘test‘@’%’;


刷新权限:

FLUSH PRIVILEGES;


使用连接工具测试可连接成功

正式开始啦


laradock 配置开发环境


1. 克隆 laradock 包到本地指定文件夹(与项目同级)

官方网站:laradock.io

#码云git clone https://gitee.com/anviod/laradock.git#githubgit clone https://github.com/Laradock/laradock.git


2. 进入 laradock 目录将 .env.example 重命名为 .env

3. 执行命令 docker-compose up -d nginx workspace 运行容器

这里需要注意:请求raw.githubusercontent.com超时,改Hosts并无法解决问题。这里我们需要vim/etc/resolv.con改为阿里云DNS解决问题。

nameserver 223.5.5.5nameserver 223.6.6.6

Laravel部署使用时有最低版本要求的,如果安装的版本不兼容。不变更Laravel那就需要重构nginx、workspace;

重构办法如下:

修改laradock目录下的.env文件,这里把PHP_VERSION改为Laravel支持的版本。

接下来执行重构

 docker-compose build nginx docker-compose build workspace

一段时间完成后,再执行

docker-compose up -d nginx workspace

运行完成后可通过 docker ps 命令查看一下容器运行情况

4. 配置访问域名

我们需要到 laradock 下编辑 .env 中的 APP_CODE_PATH_HOST 配置项

APP_CODE_PATH_HOST=../wwwroot/

laradock目录下

─(root㉿kali)-[~/nginx/www/laradock]└─# vim /nginx/sites/default.confserver {    listen 80 default_server;    listen [::]:80 default_server ipv6only=on;    # For https    # listen 443 ssl default_server;    # listen [::]:443 ssl default_server ipv6only=on;    # ssl_certificate /etc/nginx/ssl/default.crt;    # ssl_certificate_key /etc/nginx/ssl/default.key;    server_name localhost;#这里/var/www/相当于在laradock下,.env中设置的../wwwroot目录    root /var/www/detection/public;    index index.php index.html index.htm;    location / {         try_files $uri $uri/ /index.php$is_args$args;    }    location ~ \.php$ {        try_files $uri /index.php =404;        fastcgi_pass php-upstream;        fastcgi_index index.php;

这样就相当于为 wwwroot 与 Docker 的 /var/www 目录建立了软链接.

5. 在 laradock workspace添加 laravel 项目

进入 laradock 目录,执行命令

docker-compose exec workspace bash

进入 Workspace 容器

workspace容器里面安装composer

# php -r "copy('https://install.phpcomposer.com/installer', 'composer-setup.php');"# php composer-setup.phpAll settings correct for using ComposerDownloading...Composer (version 1.6.5) successfully installed to: /root/composer.phar移动 composer.phar,这样 composer 就可以进行全局调用:# mv composer.phar /usr/local/bin/composer切换为国内镜像:# composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/更新 composer:# composer selfupdate

在容器中使用 Composer 安装 Laravel 安装器

composer create-project laravel/laravel mylaravel  "9.33.*"

接下来,需要重启 Docker 的 Nginx:

docker-compose up -d nginx

配置完成后通过端口访问可正常访问,配置成功啦

这里我们设置的场景是新建一个应用,如果是多个应用在上述 wwwroot 目录下创建多个应用目录, laradock/nginx/sites 下对应创建多个配置文件,不要忘记在系统 /etc/hosts 中配置相关域名绑定 IP 。

来源地址:https://blog.csdn.net/flamevip/article/details/130018594

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

docker部署laravel

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

Docker部署

部署Docker 1.部署docker相关此章描述在新的服务器上安装docker容器。1.1 概述Docker 是一个开源的应用容器引擎,基于 Go 语言 并遵从 Apache2.0 协议开源。Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可
Docker部署
2020-05-25

docker里部署nexus3

安装方式:直接使用docker拉取官方镜像源码安装dockerfile构建以上使用第一种方式安装,简单快捷,直接拉取镜像然后启动即可。系统环境:系统: Ubuntu 16.04内核: 4.4.0-116-generic安装步骤:安装dock
2023-01-31

Docker部署Minio (服务器上部署Minio)

Minio简介: MinIO 是一个基于Apache License v2.0开源协议的对象存储服务。它兼容亚马逊S3云存储服务接口,非常适合于存储大容量非结构化的数据,例如图片、视频、日志文件、备份数据和容器/虚拟机镜像等,而一个对象文件
2023-08-18

Docker方式部署TiDB

安装Docker12345[root@localhost /]# cat /etc/redhat-release CentOS Linux release 7.5.1804 (Core) [root@localhost /]# yum install dock
Docker方式部署TiDB
2015-12-19

jenkins 部署vue到docker

Jenkins是一款持续集成(CI)和持续交付(CD)工具,在软件开发流程中起着至关重要的作用。而Docker则是一种流行的容器化技术,能够方便地部署应用程序。在本文中,我们将介绍如何使用Jenkins将Vue应用程序部署到Docker容器中。我们将一步一步地介绍此过程。1. 配置Jenkins首先,您需要通过Jenkins界面安装一些必要的插件。 进入“Manage Jenk
2023-05-18

Docker如何部署Node.js

本篇内容主要讲解“Docker如何部署Node.js”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Docker如何部署Node.js”吧!项目结构`-- docker-node |-- dat
2023-06-17

Docker如何部署Mysql8

本篇内容主要讲解“Docker如何部署Mysql8”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Docker如何部署Mysql8”吧!一、前置需求1.linux系统本人用的Centos72.安装
2023-07-02

Docker rocketmq如何部署

这篇文章给大家分享的是有关Docker rocketmq如何部署的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。准备工作在搭建之前,我们需要做一些准备工作,这里我们需要使用 docker 搭建服务,所以需要提前安装
2023-06-22

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录