美文网首页
k8s部署laravel应用

k8s部署laravel应用

作者: 莫轩然 | 来源:发表于2019-03-13 15:30 被阅读0次
  • 准备Dockerfile
FROM composer:1.6.5 as build 
WORKDIR /app 
COPY . /app 
RUN composer install

FROM php:7.1.8-apache 
EXPOSE 80 
COPY --from=build /app /app 
COPY vhost.conf /etc/apache2/sites-available/000-default.conf 
RUN chown -R www-data:www-data /app \ 
  && a2enmod rewrite
  • 切换到项目目录
cd /path/to/your/project
  • 在项目目录中添加vhost.conf
<VirtualHost *:80>
  DocumentRoot /app/public

  <Directory "/app/public">
    AllowOverride all
    Require all granted
  </Directory>

  ErrorLog ${APACHE_LOG_DIR}/error.log
  CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
  • 打包镜像
docker build -t yourname/laravel-kubernetes-demo .
  • 运行示例程序
docker run -ti -p 8080:80 -e APP_KEY=base64:cUPmwHx4LXa4Z25HhzFiWCf7TlQmSqnt98pnuiHmzgY=  laravel-kubernetes-demo

示例程序可以通过 http://localhost:8080 访问。
在这个安装中,容器是通用的,同时 APP_KEY 并不是写死或共享的。
页面可以正常访问,但数据库连接不上,报错数据库驱动找不到。

  • 解决数据库驱动问题
进入容器:
docker exec -ti 容器Id  bash
查看php扩展
php -m (发现php扩展中缺少pdo_mysql扩展)
安装pdo_mysql扩展
docker-php-ext-install pdo pdo_mysql
安装成功后退出容器并停止容器
  • 启动本地镜像仓库打tag并上传
docker run -d -p 5000:5000 --restart=always  registry:2
docker commit -m "提交内容"  容器id imageName:Version
docker tag yourname/laravel-k8s 127.0.0.1:5000/laravel-k8s
docker push 127.0.0.1:5000/laravle-k8s
docker rmi 旧镜像
  • 重建Dockerfile
FROM composer:1.6.5 as build
WORKDIR /app
COPY . /app
RUN composer install

FROM 127.0.0.1:5000/laravle-k8s
# 暴露 80 端口
EXPOSE 80
  • 重新build镜像
docker build -t yourname/laravel-k8s .
  • 重新运行
docker run -ti -p 8080:80 -e APP_KEY=base64:cUPmwHx4LXa4Z25HhzFiWCf7TlQmSqnt98pnuiHmzgY=  yourname/laravel-k8s
  • k8s(基于docker for mac,亦可使用Minikube)
kubectl run laravel-k8s  --image=yourname/laravel-k8s  --port=80  --image-pull-policy=IfNotPresent  --env=APP_KEY=base64:cUPmwHx4LXa4Z25HhzFiWCf7TlQmSqnt98pnuiHmzgY=
开放服务端口
kubectl expose deployment laravel-yxd  --type=NodePort --port=80
  • 查看服务


    image.png
  • 访问本机IP:30081端口即可(pdo_mysql扩展已装上,可正常访问数据库)

  • 开启k8s Web UI

kubectl proxy

相关文章

网友评论

      本文标题:k8s部署laravel应用

      本文链接:https://www.haomeiwen.com/subject/rtzzpqtx.html