注册登录就不用讲了,自行领悟
官方提供的一键部署并不怎么实用,我把demo部署上去有什么用,又不能修改,干瞪眼🤣
因为没用过Docker之后查了又查,并没有关于PHP的部署,全是Python Nodejs Java的教程,是PHP不香了吗🥵
第一步创建实例,我们需要先了解下管官方要的Dockerfile文件的写法:
Dockerfile ,也别了解了直接复制就行😂
# 不建议更换alpine3.13之后会有问题,什么问题我也不知道,不要动就对了
FROM alpine:3.13
# 容器默认时区为UTC,如需使用上海时间请启用以下时区设置命令
#RUN apk add tzdata && cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && echo Asia/Shanghai > /etc/timezone
# 设置国内镜像源并安装PHP+Nginx+Zip
RUN sed -i 's/dl-cdn.alpinelinux.org/mirrors.tencent.com/g' /etc/apk/repositories \
&& apk add --update --no-cache \
php7 \
php7-json \
php7-ctype \
php7-exif \
php7-pdo \
php7-pdo_mysql \
php7-fpm \
php7-curl \
nginx \
zip \
&& rm -f /var/cache/apk/*
# 设置网站目录,这个名字你喜欢就好
WORKDIR /app
# 将当前目录下所有文件拷贝到/app (.dockerignore中文件除外)
COPY . /app
# 替换nginx、fpm、php配置并赋予777权限,不赋予权限修改或写日志有问题,配置文件放到本地根目录conf目录下
RUN cp /app/conf/nginx.conf /etc/nginx/conf.d/default.conf \
&& cp /app/conf/fpm.conf /etc/php7/php-fpm.d/www.conf \
&& cp /app/conf/php.ini /etc/php7/php.ini \
&& mkdir -p /run/nginx \
&& chmod -R 777 /app \
&& chmod -R 777 /etc \
&& mv /usr/sbin/php-fpm7 /usr/sbin/php-fpm
# 暴露端口
# 此处端口必须与「服务设置」-「流水线」以及「手动上传代码包」部署时填写的端口一致,否则会部署失败。
EXPOSE 80
# 执行启动命令.
# 写多行独立的CMD命令是错误写法!只有最后一行CMD命令会被执行,之前的都会被忽略,导致业务报错。
# 请参考[Docker官方文档之CMD命令](https://docs.docker.com/engine/reference/builder/#cmd)
CMD ["sh", "run.sh"]
run.sh 直接复制,不要改,不要改,不要改
#!/bin/sh
# 后台启动
php-fpm -D
# 关闭后台启动,hold住进程
nginx -g 'daemon off;'
有了这俩万能配置文件,你只需要:
放到你的项目 ➡️ 根目录 ➡️ 打包Zip压缩包 ➡️ 微信云托管登录 ➡️ 创建实例 ➡️ 手动上传代码 ➡️ 选定压缩包 ➡️ 提交部署 ➡️ 等待项目启动
如果想要在线编辑,创建目录:manager,然后下载它:https://github.com/657258535/Great-Linux-Manager ,把它扔到manager目录就可以在线编辑了,不过只能用于测试,正式版请通过发布部署完成
如果实例会自动停止,解决办法看图:
其他的问题暂时没遇到,至此记录结束🇨🇳