创建项目目录

这里举例家目录为/srv/test

/test 下面新建/bin启动脚本目录,按需要可新增prd/stg/tst目录正式/交互/测试

/bin目录下有run-parts.sh, run.sh, upgrade-deps.sh

run-parts.sh 项目启动脚本

#!/bin/bash

set -e

DEPLOY_ENV=$1

PROJECT_ROOT="$(realpath $(dirname $0)/../${DEPLOY_ENV})"

cd "${PROJECT_ROOT}" || exit

source "venv/bin/activate"

source "etc/custom.conf"

source "etc/system.conf"

cd repo || exit

exec ../bin/$2

run.sh 自定义脚本(例如数据库迭代更新)

#!/bin/bash

set -e

DEPLOY_ENV=$1

shift;

PROJECT_ROOT="$(realpath $(dirname $0)/../${DEPLOY_ENV})"

cd "${PROJECT_ROOT}" || exit

source "venv/bin/activate"

source "etc/custom.conf"

source "etc/system.conf"

cd repo || exit

exec $*

upgrade-deps.sh 数据库依赖更新

#!/bin/bash

set -e

BIN_DIR="$(dirname $0)"

"${BIN_DIR}/run.sh" $1 pip install -i https://pypi.douban.com/simple -Ur "requirements.txt"

prd/stg/tst三者大致相同,目录下拥有 bin etc repo var venv 四个文件夹

bin 存储项目需求启动命令:

    bin目录下主要有三个文件beat,  web,  worker(因为项目用的celery做的异步及定时)

    web是主项目启动文件

    #!/bin/bash

    exec gunicorn 'manage:create_app()' -b 127.0.0.1:$PORT -w 4 -t 50

    beat是定时任务启动文件

    #!/bin/bash

    exec celery beat -A test.tasks.main --pidfile=../var/celerybeat.pid --schedule=../var/celerybeat-schedule

     worker是异步任务启动文件

    #!/bin/bash

    exec celery -A test.tasks.main worker -l info

ect 存项目环境变量文件

     一般存在custom.conf(项目配置文件),system.conf(服务器配置文件)

    如果项目中需要存储自定义证书等数据也可在该目录下生成文件

repo 存项目代码

    存储项目主体代码,git clone的时候可将项目名重命名为repo

var 存使用工具的日志文件

    比如列子中的celerybeat.pidcelerybeat-schedule文件

venv 项目虚拟环境

    每一个项目配置对应虚拟环境,不要多个共用,启动项目脚本中读取source "venv/bin/activate"

你可能感兴趣的:(创建项目目录)