如何使用docker部署自己的项目

如何使用docker部署自己的项目?

前一阵公司有一个将项目部署到私有化本地的需求,我对服务器没什么研究,搭建起来很费力,所以用docker做了一系列项目私有化部署的镜像,现在写个博客记录一下学习和搭建的过程。

拿我现在的项目举例,分为前端(vue实现),后端(PHP laravel框架), OnlineJudge(在线判题) 以及数据层和缓存(mysql, redis)。思路就是首先为各个项目创建镜像上传到dockerhub,然后使用docker-compose 一键部署

Laravel项目创建镜像
  1. 进入项目目录,创建dockerfile文件, 内容如下
FROM php:7.4-fpm

RUN  sed -i 's/deb.debian.org/mirrors.aliyun.com/' /etc/apt/sources.list && \
    sed -i 's/security.debian.org/mirrors.aliyun.com/' /etc/apt/sources.list && \
    sed -i 's/security-cdn.debian.org/mirrors.aliyun.com/' /etc/apt/sources.list

RUN sed -i 's/9000/\/run\/php\/php7.4-fpm.sock/' /usr/local/etc/php-fpm.d/zz-docker.conf

RUN mkdir /run/php \
    && touch /run/php/php7.4-fpm.sock \
    && chmod 777 /run/php/php7.4-fpm.sock \
    && chmod +s /run/php/php7.4-fpm.sock

#### 安装PHP扩展 ######################

RUN pecl install redis-5.1.1 && \
     docker-php-ext-enable redis

RUN docker-php-ext-install pdo && \
     docker-php-ext-install pdo_mysql && \
     docker-php-ext-enable pdo pdo_mysql

#### 安装nginx和supervisor 扩展 ######################

RUN apt-get update -yqq && \
    apt-get install -yqq \
        nginx supervisor cron

RUN echo "* * * * * cd /var/www/kaoshi.web.server && php artisan schedule:run >> /dev/null 2>&1" >> /etc/crontab

#### 复制配置文件到镜像 ######################

COPY ./ /var/www/kaoshi.web.server/
COPY ./php-fpm/www.conf /usr/local/etc/php-fpm.d/
COPY ./sites/default /etc/nginx/sites-enabled/
COPY ./supervisor.conf /etc/supervisor/conf.d/

###### 修改laravel项目的各种配置 #########################
RUN chown -R www-data:www-data /var/www/kaoshi.web.server \
    && mv /var/www/kaoshi.web.server/.env.docker /var/www/kaoshi.web.server/.env

ENV MYSQL_HOST=127.0.0.1
ENV 
  • 1
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值