fly.io:账户注册及部署OneManager-php

发现个网站fly.io,网站宣称可以部署各种服务在上面~从doc得知部署还算简单,只需在相应的源码目录内配置fly.toml即可。当然,你也可以通过容器方式进行部署。本文将着重介绍通过容器这种方式部署的具体过程~
21/12/24 更新了PHP版本到8.0,nginx到1.12.0.修改php-fpm为unix监听。需要注意,最新版本OneManager-php后台多了个强制https,注意不要开启,开启会循环302!

注册一个账户

网站注册地址https://web.fly.io/app/sign-up 注册很简单,只需一个邮箱即可~当然直接通过GitHub登录也是可以的~注册后会提示绑定信用卡才可使用(Error We need your payment information to continue! Add a credit card or buy credit)(银联卡也可以拿来验证233).免费额度足够搭个小网站耍耍了~注意不要使用永久存储卷,那个是要花钱的!
(每月gon160G出站流量,8,436,960秒CPU时长,还有独立的ipv4无限个ipv6地址真的挺良心的

安装flyctl

安装很简单,以下是他们官网提供的脚本
macOS
brew install superfly/tap/flyctl
或者
curl -L https://fly.io/install.sh | sh
Linux
curl -L https://fly.io/install.sh | sh
Windows power shell
iwr https://fly.io/install.ps1 -useb | iex
安装完成后运行以下命令
flyctl auth login

flyctl会唤醒系统浏览器,直接登录等待授权即可~
接下来的核心就是这个部署app了!官方的套路是先创建fly app,然后检查通过后flyctl deploy部署之~所以按照官网的套路,我们来试着部署个应用试试看!

部署属于你的应用

由于容器内保存的数据重启后会丢失的缘故,建个博客啥的有点不现实。。。永久卷还要花钱,所以我选择部署OneManager-php,折腾了N天,终于可以拿出个“还能用”的解决方案!有更好解决方案的欢迎留言!

以下是Dockerfile,在原作者基础上做了一点改动

FROM alpine:3.14
LABEL Maintainer="Tim de Pater <[email protected]>"
LABEL Description="Lightweight container with Nginx 1.20 & PHP 8.0 based on Alpine Linux."

# Install packages and remove default server definition
RUN apk --no-cache add \
  curl \
   git\
  nginx \
  php8 \
  php8-ctype \
  php8-curl \
  php8-dom \
  php8-fpm \
  php8-gd \
  php8-intl \
  php8-json \
  php8-mbstring \
  php8-mysqli \
  php8-opcache \
  php8-openssl \
  php8-phar \
  php8-session \
  php8-xml \
  php8-xmlreader \
  php8-zlib \
  supervisor

# Create symlink so programs depending on `php` still function
RUN ln -s /usr/bin/php8 /usr/bin/php

# Configure nginx
COPY config/nginx.conf /etc/nginx/nginx.conf
COPY docker-entrypoint.sh /var/docker-entrypoint.sh

# Configure PHP-FPM
COPY config/fpm-pool.conf /etc/php8/php-fpm.d/www.conf
COPY config/php.ini /etc/php8/conf.d/custom.ini

# Configure supervisord
COPY config/supervisord.conf /etc/supervisor/conf.d/supervisord.conf

# Setup document root
RUN mkdir -p /var/www/html

# Make sure files/folders needed by the processes are accessable when they run under the nobody user
RUN chown -R nobody.nobody /var/www/html && \
  chmod +x /var/docker-entrypoint.sh && \
  chown -R nobody.nobody /run && \
  chown -R nobody.nobody /var/lib/nginx && \
  chown -R nobody.nobody /var/log/nginx

# Switch to use a non-root user from here on
USER nobody

# Add application
WORKDIR /var/www/html

RUN git clone https://github.com/qkqpttgf/OneManager-php.git /var/www/html/ && \
rm /var/www/html/.data/config.php &&\
chown -R nobody.nobody /var/www/html
# Expose the port nginx is reachable on
EXPOSE 8080

# Let supervisord start nginx & php-fpm
ENTRYPOINT /var/docker-entrypoint.sh

# Configure a healthcheck to validate that everything is up&running

docker-entrypoint.sh

#!/usr/bin/env sh
echo $CONFIG|base64 -d > /var/www/html/.data/config.php
chmod 666 /var/www/html/.data/config.php
/usr/bin/supervisord -c /etc/supervisor/conf.d/supervisord.conf

fly.toml

app = "自行修改"
[[services]]
  internal_port = 8080
  protocol = "tcp"

  [services.concurrency]
    hard_limit = 25
    soft_limit = 20

 [[services.ports]]
    handlers = ["http"]
    port = "80"

  [[services.ports]]
    handlers = ["tls", "http"]
    port = "443"

其中关键的config.php配置文件代码我用base64转义过,可以将代码排版整合成一个整体!好在平台对secrets长度没做过多限制,这样就能实现重启不丢失配置文件了!而且安全性会好很多

fly secrets set CONFIG="base64加密后的配置代码" -a 你的app名称

需要一提的是,OneManager-php的 config.php需要独立的vps或虚拟主机配置成功后提取,理论上进入部署成功且设置完成后的容器内部提取也可以,奈何不知如何做,也就作罢。。

其余的配置文件文末我会打包放上来,需要的可以下载自行修改。demo地址 戳我跳转

V2配置文件下载

参考链接 https://github.com/TrafeX/docker-php-nginx

 
         

分享几个临时邮箱合集

临时邮箱合集,以下这些小编亲测可用,值得收藏哦 👉 Temp-Mail Temp-Mail 👉 AdGuard Temp Mail AdGuard Temp Mail 👉 Guerrilla Mail Guerrilla Mail 👉 Best T...

注册bgm账号提示“抱歉抱歉,帐户激活服务暂时不可用,请稍后再试”之解决办法

今天尝试注册https://bangumi.tv/,注册前半段没啥说的,很简单。结果跑去激活账户遇到了 “抱歉抱歉,帐户激活服务暂时不可用,请稍后再试”…一阵无语过...

本富科技锂电池充电器wifi连接密码是多少?

搜了一圈,在某音找到了答案。。。 默认wifi密码 BFKJ1688 登录页面 http://192.168.4.1 调试密码 666666 希望能帮到你哈

pantaloon 6月解密可获得游戏 Polterguys: Possession Party(附简易答案)

参与地址 pantaloon ,输入名字和邮箱地址join获取验证码登入。 送的游戏是这个Polterguys: Possession Party 简单说下答案哈。。。解密苦手表示猜了好久,也...

手动部署tuicV5到linux vps上

刚刚折腾了下,成功安装tuicV5到小鸡上2333 ,还别说,速度和hysteria比起来也不差,用起来还不错~ 我这里分享下我折腾安装全过程,其实还挺简单的 #新建个...

API切换cloudflare边缘证书颁发机构

已知cf边缘证书颁发机构有四种 cf自家 、Google、let‘s encrypt、setcigo。其中cf自家证书有效期最长,有一年,其余皆是三个月。。。 可以用命令行手动切换为...