python、php、nodejs docker部署(20210308在用)
python(fastapi + uvicorn)docker 部署时run命令
docker run -d \
--name mqsub \
--restart=always \
--network php-net \
-p 8000:80 \
-v /root/mqsub:/app \
-e KEEP_ALIVE="20" \
-e GRACEFUL_TIMEOUT="20" \
-e TIMEOUT="20" \
mqsub /start-reload.sh
用于启动bash文件具体代码:start-reload.sh
# /start-reload.sh
#! /usr/bin/env sh
set -e
if [ -f /app/app/main.py ]; then
DEFAULT_MODULE_NAME=app.main
elif [ -f /app/main.py ]; then
DEFAULT_MODULE_NAME=main
fi
MODULE_NAME=${MODULE_NAME:-$DEFAULT_MODULE_NAME}
VARIABLE_NAME=${VARIABLE_NAME:-app}
export APP_MODULE=${APP_MODULE:-"$MODULE_NAME:$VARIABLE_NAME"}
HOST=${HOST:-0.0.0.0}
PORT=${PORT:-80}
LOG_LEVEL=${LOG_LEVEL:-info}
# If there's a prestart.sh script in the /app directory or other path specified, run it before starting
PRE_START_PATH=${PRE_START_PATH:-/app/prestart.sh}
echo "Checking for script in $PRE_START_PATH"
if [ -f $PRE_START_PATH ] ; then
echo "Running script $PRE_START_PATH"
. "$PRE_START_PATH"
else
echo "There is no script $PRE_START_PATH"
fi
# Start Uvicorn with live reload
exec uvicorn --reload --host $HOST --port $PORT --log-level $LOG_LEVEL "$APP_MODULE"
python(uwsgi)docker 部署时run命令
docker run -d \
--name mqsub \
--restart=always \
--network php-net \
-p 8000:8000 \
-v /root/mqsub:/home \
mqsub \
/bin/bash /home/entry-point.sh
nodejs docker 部署时run命令
docker run -d \
--restart=always \
-v /root/xy.api:/app \
--network php-net \
-p 3000:3000 \
--name xyys.nodejs \ #镜像名
xyys.nodejs \ #容器名
node /app/app.js #运行命令
php docker 部署时run命令
docker run -d \
--restart=always \
--name php-web \
--network php-net \
-p 9001:9000 \
-v /www/nginx/apps:/usr/share/nginx/html \
php:5.6-fpm
清华pypi 镜像速度最快(pip install)
pypi 镜像每 5 分钟同步一次。(https://mirrors.tuna.tsinghua.edu.cn/help/pypi/)
临时使用
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple some-package
设为默认
升级 pip 到最新的版本 (>=10.0.0) 后进行配置:
pip install pip -U
pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple
如果您到 pip 默认源的网络连接较差,临时使用本镜像站来升级 pip:
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple pip -U
docker镜像image拉取速度过慢 - 仓库源:中科大速度最快(docker pull)
创建、修改 /etc/docker/daemon.json
vim /etc/docker/daemon.json # 编辑daemon.json
{
"registry-mirrors": ["http://docker.mirrors.ustc.edu.cn"]
}
systemctl restart docker # 重启docker服务
国内主要镜像
Docker中国区官方镜像| https://registry.docker-cn.com
网易| http://hub-mirror.c.163.com
ustc | https://docker.mirrors.ustc.edu.cn
中国科技大学 | https://docker.mirrors.ustc.edu.cn
阿里云 | https://cr.console.aliyun.com
fastapi uvicorn 部署Dockerfile(20210308在用)
#FROM centos/python-36-centos7
FROM tiangolo/uvicorn-gunicorn-fastapi:python3.7
MAINTAINER sam
USER root
WORKDIR /app
# 下载pip包
RUN python -m pip install --upgrade pip -i https://pypi.tuna.tsinghua.edu.cn/simple
RUN pip install requests -i https://pypi.tuna.tsinghua.edu.cn/simple
RUN pip install wheel -i https://pypi.tuna.tsinghua.edu.cn/simple
RUN pip install pycrypto -i https://pypi.tuna.tsinghua.edu.cn/simple
RUN pip install mq_http_sdk -i https://pypi.tuna.tsinghua.edu.cn/simple
RUN pip install aliyunsdkcore -i https://pypi.tuna.tsinghua.edu.cn/simple
RUN pip install -i https://pypi.tuna.tsinghua.edu.cn/simple aliyun-python-sdk-iot
RUN pip install -i https://pypi.tuna.tsinghua.edu.cn/simple fastapi
RUN pip install -i https://pypi.tuna.tsinghua.edu.cn/simple pydantic
RUN pip install -i https://pypi.tuna.tsinghua.edu.cn/simple uvicorn
#COPY requirements.txt /home/requirements.txt
# 使用淘宝的npm镜像
#RUN pip install -i https://pypi.tuna.tsinghua.edu.cn/simple --trusted-host pypi.tuna.tsinghua.edu.cn
#RUN pip install -r requirements.txt
#ENTRYPOINT [ "/bin/bash", "/home/entry-point.sh"]
#ENTRYPOINT uwsgi --ini /home/hello.ini
#CMD ["uwsgi","--ini", "/home/hello.ini"] #启动uwsgi
fastapi uvicorn 部署Dockerfile(参考)
FROM python:3.7
RUN pip install fastapi uvicorn
EXPOSE 80
COPY ./app /app
CMD ["uvicorn", "app.main:app", "--host", "0.0.0.0", "--port", "8080"]
清华pypi 镜像速度最快(pip install)
代码块
五级标题
- 列表第一项
- 列表第二项
- 有序列表第一项
- 有序列表第二项
引用段落
斜体
粗体
代码块