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/mydemorestart: alwayscontainer_name: mydemo# 容器名称为mydemoports:- "8000:9000"# 主机8000端口映射到容器的9000端口,9000是php-fpm的默认端口处理php请求volumes:- /home/myDemo:/var/www/html/myDemo
#把你的laravel项目放到主机/home/myDemo下面depends_on:- redis# redisredis:image: redis:latestcontainer_name: redisrestart: unless-stoppedports:- 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

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

3D Line Mapping Revisited论文阅读

1. 代码地址 GitHub - cvg/limap: A toolbox for mapping and localization with line features. 2. 项目主页 3D Line Mapping Revisited 3. 摘要 提出了一种基于线的重建算法&#xff0c;Limap&#xff0c;可以从多视图图像中构建3D线地图&#xff0c;通过线三角化、精心…

SAP SHDB VLPOD 录屏带序列号的

考虑到交货单有多种情况 1个行项目 多个数量,需要对应多个序列号 多个行项目,多个数量,需要多个序列号 最终形成的FM如下 FUNCTION ZIF_BDC_VLPOD_RE_S. *"---------------------------------------------------------------------- *"*"本地接口: *…

人脸识别基本流程

人脸识别一般包括&#xff1a;人脸检测、人脸对齐、人脸特征提取和人脸比对四个步骤 人脸检测&#xff1a;检测到人脸的位置人脸对齐&#xff1a;同一个人采集到的不同图像可能呈现出不同的姿态和表情等&#xff0c;这种情况是不利于人脸特征提取的。所以有必要将人脸图像都变…

【go】延迟执行和定时器实现

目录 time.Sleep time.After time.NewTimer time.NewTicker time.Sleep time.Sleep可以实现延时执行 func TestSleep(t *testing.T) {fmt.Println("start time:", time.Now().Format("2006-01-02 15:04:05.000"))time.Sleep(2 * time.Second)fmt.Pri…

网站不收录,与服务器不备案有关吗

随着互联网的快速发展&#xff0c;网站已经成为企业、个人和机构宣传和展示自己的重要平台。然而&#xff0c;许多网站在建设完成后却面临着不收录的问题&#xff0c;这给网站的管理者和拥有者带来了很大的困扰。其中&#xff0c;一些人认为&#xff0c;网站不收录的原因与服务…

2024美赛数学建模C题完整论文教学(含十几个处理后数据表格及python代码)

大家好呀&#xff0c;从发布赛题一直到现在&#xff0c;总算完成了数学建模美赛本次C题目Momentum in Tennis完整的成品论文。 本论文可以保证原创&#xff0c;保证高质量。绝不是随便引用一大堆模型和代码复制粘贴进来完全没有应用糊弄人的垃圾半成品论文。 C论文共49页&…

网络原理TCP/IP(5)

文章目录 IP协议IP协议报头地址管理网段划分特殊的IP地址路由选择以太网认识MAC地址对比理解MAC地址和IP地址DNS&#xff08;域名服务器&#xff09; IP协议 IP协议主要完成的工作是两方面&#xff1a; 地址管理&#xff0c;使用一套地址体系&#xff0c;来描述互联网上每个设…

群晖各个型号之间有什么特色和区别

https://www.mi-d.cn/1338 您可以通过编译不同的型号固件来实现你想要的功能特性 DS3622xs、DS3617xs、SA6400 DSM7.x版本开始都支持24个CPU线程&#xff0c;其它的大部分型号都最多只支持8个线程&#xff08;DS918、DS920&#xff09;或16个线程&#xff0c;如果你的CPU核心…

JAVA Web 学习(五)Nginx、RPC、JWT

十二、反向代理服务器——Nginx 支持热部署&#xff0c;几乎可以做到 7 * 24 小时不间断运行&#xff0c;即使运行几个月也不需要重新启动&#xff0c;还能在不间断服务的情况下对软件版本进行热更新。性能是 Nginx 最重要的考量&#xff0c;其占用内存少、并发能力强、能支持…

TPRI-DMP的多级权限维护

一、多级授权维护 1、 多级授权的核心功能是当前用户给自己权限范围内的组织机构中的用户&#xff0c;分配自己权限范围内能看到的角色或删除用户已拥有的角色。 权限范围内的数据通过平台的权限表达式进行控制。在多层公司代码的组织机构中&#xff0c;多级授权功能(管理员角…

TrinityCore安装记录

TrinityCore模拟魔兽世界&#xff08;World of Warcraft&#xff09;的开源项目&#xff0c;并且该项目代码广泛的优化、改善和清理代码。 前期按照官方手册按部就班的安装即可。 注意几点&#xff1a; 1 需要配置Ubuntu22.04版本的服务器或者Debian11 服务器。2 需要使用gi…

力扣热门100题刷题笔记 - 5.最长回文子串

力扣热门100题 - 5.最长回文子串 题目链接&#xff1a;5. 最长回文子串 题目描述&#xff1a; 给你一个字符串 s&#xff0c;找到 s 中最长的回文子串。 如果字符串的反序与原始字符串相同&#xff0c;则该字符串称为回文字符串。示例&#xff1a; 输入&#xff1a;s "…