docker-compose部署laravel项目实战(主机nginx连接项目容器)(详细配置过程)

我用的是主机上的nginx,没有用docker安装nginx, 所以需要先在主机上安装nginx

# 更新系统yum
sudo yum update

# 安装安装包

sudo yum install epel-release
sudo yum install wget

# 安装Nginx
sudo yum install nginx
#启动
sudo systemctl start nginx
#开机自启动
sudo systemctl enable nginx

一、安装docker

# 1、更新系统软件包:
sudo yum update
 
# 2、安装Docker依赖包
sudo yum install -y yum-utils device-mapper-persistent-data lvm2
 
# 3、添加Docker的yum源:
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
 
# 4、安装Docker引擎:
sudo yum install -y docker-ce
 
# 5、启动Docker服务:
sudo systemctl start docker
# docker常用命令
 
# 查看版本信息
docker --version
 
# 查看 Docker 的详细信息
docker info
 
# 查看当前正在运行的 Docker 容器
docker ps
 
# 进入容器查看
docker exec -it <容器名称或ID> bash

二、安装docker-composer

# 1、下载最新版本的Docker Compose:
curl -L https://github.com/docker/compose/releases/download/v2.24.0/docker-compose-$(uname -s)-$(uname -m) -o /usr/local/bin/docker-compose
# 或者: 
curl -L http://mirror.azure.cn/docker-toolbox/linux/compose/v2.24.0/docker-compose-$(uname -s)-$(uname -m) -o /usr/local/bin/docker-compose

这里可能会遇到问题, 就是下载不了Docker Compose,或者版本不兼容问题,首先确认你的服务器是什么,比如我这里是centos7.5, 64位, 那么,可以直接去网站下载对应版本Index of /docker-toolbox/

选择对应版本下载后,把文件放到/usr/local/bin/docker-compose

然后给命令加上权限

# 2、添加可执行权限:
sudo chmod +x /usr/local/bin/docker-compose

三、写docker-composer.yml配置文件

# 进入目录
cd /home
# 创建 docker-comser目录
mkdir docker-composer 
 
# 进入docker-composer
cd docker-composer
 
# 创建dockoer-compser.yml
vi dockoer-compser.yml
 
version: '3'
# 表示使用 Docker Compose 的版本 3 语法
services:
  app:
    build: /home/mydemo
    restart: always
    container_name: mydemo
    # 容器名称为mydemo
    ports:
      - "8000:9000"
    # 主机8000端口映射到容器的9000端口,9000是php-fpm的默认端口处理php请求
    volumes:
      - /home/myDemo:/var/www/html/myDemo
#把你的laravel项目放到主机/home/myDemo下面
    depends_on:
      - redis
  # redis
  redis:
    image: redis:latest
    container_name: redis
    restart: unless-stopped
    ports:
      - 6379:6379


    

四、配置nginx

在nginx/conf.d/新建myHtml.conf

server {
    listen 80;
    server_name myDemo.com; # 这里填写你的项目域名
    # 注意 这里写的是nginx容器中的目录,需要和你容器项目里面放的访问路径对应
    root /var/www/html/myDemo/public;
    index index.php index.html index.htm;

 location / {
         try_files $uri $uri/ /index.php?$query_string;
    }

    location ~ \.php$ {
        # 注意这里需使用 主机:端口 的形式,这里8000就是docker-compose配置里面的主机端口,映射到容器的9000端口上处理php项目文件
        fastcgi_pass 127.0.0.1:8000;
        fastcgi_index index.php;
        fastcgi_buffers 16 16k;
        fastcgi_buffer_size 32k;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        fastcgi_read_timeout 600;
        include fastcgi_params;
    }


    error_log /var/log/nginx/myDemo-error.log;
}

五、写Dockerfile文件

该文件放在/home/myDemo下面,也就是项目根目录下面

FROM php:7.3-fpm

# 安装依赖
RUN apt-get update && apt-get install -y \
    libzip-dev \
    zip \
    unzip \
    && docker-php-ext-install zip pdo_mysql
RUN apt-get install -y vim



# 安装 Composer
RUN curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer

# 设置工作目录
WORKDIR /var/www/html/myDemo

# 复制整个目录
COPY . /var/www/html/myDemo

# 设置文件和目录权限
RUN find /var/www/html/myDemo -type d -exec chmod 755 {} \; \
    && find /var/www/html/myDemo -type f -exec chmod 644 {} \; \    && chmod -R 777 /var/www/html/myDemo/storage/ /var/www/html/myDemo/public/ /var/www/html/myDemo/bootstrap/cache/ /var/www/html/myDemo/vendor/

# 其他配置和运行指令...

然后我们就可以启动构建容器

# 构建容器
docker-compose up -d

通过docker ps -a 可以看到容器是否已经启动

docker exec -it myDemo bash进入容器后,也可以安装需要的一些基本的命令包

# 安装vim
apt-get update && apt-get install -y vim

# 安装ls
apt-get update && apt-get install -y ps

# 安装ls
apt-get update && apt-get install -y losf

    

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/372727.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

C语言笔试题之反转链表(头插法)

实例要求&#xff1a; 1、给定单链表的头节点 head &#xff1b;2、请反转链表&#xff1b;3、最后返回反转后的链表&#xff1b; 案例展示&#xff1a; 实例分析&#xff1a; 1、入参合理性检查&#xff0c;即head ! NULL || head->next ! NULL&#xff1b;2、while循环…

Vue3中使用element-plus菜单折叠后文字不消失

今天使用element-plus中国的导航菜单时&#xff0c;发现菜单栏折叠起来时文字不会自动消失&#xff0c;因为element-plus中内置了菜单折叠文字自动消失的&#xff0c;使用collapsetrue/false即可&#xff0c;但在实际使用中出现了一下问题&#xff1a; 折叠以后文字并没有消失&…

普通编程,机器学习与深度学习

普通编程&#xff1a;基于人手动设置规则&#xff0c;由输入产生输出经典机器学习&#xff1a;人手工指定需要的特征&#xff0c;通过一些数学原理对特征与输出的匹配模式进行学习&#xff0c;也就是更新相应的参数&#xff0c;从而使数学表达式能够更好的根据给定的特征得到准…

vue2父组件向子组件传值时,子组件同时接收多个数据类型,控制台报警的问题

最近项目遇到一个问题,就是我的父组件向子组件(公共组件)传值时,子组件同时接收多个数据类型,控制台报警的问题,如下图,子组件明明写了可同时接收字符串,整型和布尔值,但控制台依旧报警: 仔细检查父组件,发现父组件是这样写的: <common-tabletooltip :content=…

Vue3开发环境搭建和工程结构(一)

一、NVM和Node.js安装 NVM 是 Node Version Manager&#xff08;Node 版本管理工具&#xff09;的缩写&#xff0c;是一个命令行工具&#xff0c;用于管理和切换到不同版本的 Node.js。 1、前往 nvm-windows 仓库&#xff0c;然后单击立即下载 2、下载最新版本 3 、按照安装向…

【数据结构与算法】之排序系列-20240204

这里写目录标题 一、977. 有序数组的平方二、1051. 高度检查器三、1122. 数组的相对排序四、1200. 最小绝对差五、1331. 数组序号转换 一、977. 有序数组的平方 简单 给你一个按 非递减顺序 排序的整数数组 nums&#xff0c;返回 每个数字的平方 组成的新数组&#xff0c;要求…

rsync-3.1.2下载编译安装运行同步

下载 https://rsync.samba.org/ftp/rsync/src/ 解压 -解压源码包tar -xvf rsync-3.1.2.tar.gz -重命名mv rsync-3.1.2 rsync -将软件安装到指定目录下./configure --prefi/usr -编译 make - 安装 make install 安装之后启动脚本在/usr/bin/ -启动脚本 (启动之前需要配置一下…

BridgeTower:融合视觉和文本信息的多层语义信息,主打复杂视觉-语言任务

BridgeTower 核心思想子问题1&#xff1a;双塔架构的局限性子问题2&#xff1a;不同层次的语义信息未被充分利用子问题3&#xff1a;模型扩展性和泛化能力 核心思想 论文&#xff1a;https://arxiv.org/pdf/2206.08657.pdf 代码&#xff1a;https://github.com/microsoft/Bri…

MATLAB时域分析(附完整代码)

时域分析是一种分析信号或系统在时间维度下的行为或特性的方法。在时域分析中&#xff0c;信号或系统的状态是随时间变化的&#xff0c;这是最直观的分析方法。例如&#xff0c;一个音频信号在时域中可能会显示为波形随时间的变化。 在系统分析中&#xff0c;尤其是在电路分析…

LeetCode、216. 组合总和 III【中等,组合型枚举】

文章目录 前言LeetCode、216. 组合总和 III【中等&#xff0c;组合型枚举】题目类型与分类思路 资料获取 前言 博主介绍&#xff1a;✌目前全网粉丝2W&#xff0c;csdn博客专家、Java领域优质创作者&#xff0c;博客之星、阿里云平台优质作者、专注于Java后端技术领域。 涵盖…

MATLAB | 绘图复刻(十四) | 右侧对齐桑基图,及工具函数SSankey更新

hey 真的好久不见了&#xff0c;本期既是一期绘图复刻教程&#xff0c;也是我写的工具函数的版本更新&#xff0c;本期复刻的图片来自《Nature》&#xff1a; Elmarakeby, H.A., Hwang, J., Arafeh, R. et al. Biologically informed deep neural network for prostate cancer…

构建互联网医院系统:数字化医疗的代码之旅

在互联网时代&#xff0c;医疗服务也在逐步数字化&#xff0c;而构建一个互联网医院系统成为了医疗领域的一项创新。在这篇文章中&#xff0c;我们将探讨如何通过技术代码构建一个基础的互联网医院系统&#xff0c;为患者和医生提供便捷、高效的医疗服务。 1. 环境搭建与前端…

ES6中新增Array.from()函数的用法详解

目录 Map对象的转换 Set对象的转换 字符串的转换 类数组对象的转换 Array.from可以接受三个参数 ES6为Array增加了from函数用来将其他对象转换成数组。当然&#xff0c;其他对象也是有要求&#xff0c;也不是所有的&#xff0c;可以将两种对象转换成数组。 1、部署了Iter…

【BIAI】Lecture 13 - Language processing

Language processing 专业术语 Aphasia 失语症 fMRI 功能性磁共振成像 auditory cortex 听觉皮层 motor cortex 运动皮层 primary visual cortex 初级视觉皮层 permotor cortex 前运动皮层 课程概要 What is language 语言是一种用词汇按照语法规则组合来表示和交流信息的系统…

将.sqlite文件转化为.sql文件并存入mysql数据库

场景描述 今天在处理Bird数据&#xff0c;里面都是.sqlite格式的文件&#xff0c;我需要把这些文件都存到mysql数据库里面。具体的流程如下。 1、.sqlite转化为.sql 在当前目录下打开终端 sqlite3 movie_platform.sqlite .dump > movie_platform.sql2、存入mysql 在 MyS…

Spring Data Envers 数据审计实战2 - 自定义监听程序扩展审计字段及字段值

上篇讲述了如何在Spring项目中集成Spring Data Envers做数据审计和历史版本查看功能。 之前演示的是业务表中已有的字段进行审计&#xff0c;那么如果我们想扩展审计字段呢&#xff1f; 比如目前对员工表加入了Audited审计&#xff0c;员工表有个字段为dept_id&#xff0c;为…

第16届大广赛命题详情它来啦!

“中国大学生创造力”全国大学生广告艺术竞赛&#xff08;以下简称&#xff1a;广播竞赛&#xff09;作为高水平三维生产教育一体化、科学教育一体化竞争平台&#xff0c;坚持高地位&#xff0c;基于大模式&#xff0c;在19年的发展过程中&#xff0c;坚持道德培养人才的基础&a…

高速接口PCB布局指南(一)高速信号接口概述

高速接口PCB布局指南&#xff08;一&#xff09;高速信号接口概述 1.什么是高速信号接口&#xff1f;2.高速信号PCB设计概述2.1 概述2.2 关键信号 tips&#xff1a;资料主要来自网络&#xff0c;仅供学习使用。 1.什么是高速信号接口&#xff1f; 高速信号接口是指用于传输高…

计算机毕业设计 基于SpringBoot的宠物爱心组织管理系统的设计与实现 Java实战项目 附源码+文档+视频讲解

博主介绍&#xff1a;✌从事软件开发10年之余&#xff0c;专注于Java技术领域、Python人工智能及数据挖掘、小程序项目开发和Android项目开发等。CSDN、掘金、华为云、InfoQ、阿里云等平台优质作者✌ &#x1f345;文末获取源码联系&#x1f345; &#x1f447;&#x1f3fb; 精…

蓝桥杯省赛无忧 组合数学 课件102 计数原理

01 前置基础知识 02 分类加法 03 分步乘法