full-stack-fastapi-postgresql-官方示例部署(转载)
cookiecutter生成项目目录
cookiecutter会生成对应的目录结构,过程中输入的一些参考参数如下:
(base) [root@localhost home]# cookiecutter https://github.com/tiangolo/full-stack-fastapi-postgresql
project_name [Base Project]: devops
project_slug [devops]:
domain_main [devops.com]:
domain_staging [stag.devops.com]:
docker_swarm_stack_name_main [devops-com]:
docker_swarm_stack_name_staging [stag-devops-com]:
secret_key [changethis]: 123456
first_superuser [admin@devops.com]:
first_superuser_password [changethis]: 123456
backend_cors_origins '["http://localhost", "http://localhost:4200", "http://localhost:3000", "http://localhost:8080", "https://localhost", "https://localhost:4200", "https://localhost:3000", "https://localhost:8080", "http://dev.devops.com", "https://stag.devops.com", "https://devops.com", "http://local.dockertoolbox.tiangolo.com", "http://localhost.tiangolo.com"]':
smtp_port [587]:
smtp_host []:
smtp_user []:
smtp_password []:
smtp_emails_from_email [info@devops.com]:
postgres_password [changethis]: 123456
pgadmin_default_user [admin@devops.com]:
pgadmin_default_user_password [123456]:
traefik_constraint_tag [devops.com]:
traefik_constraint_tag_staging [stag.devops.com]:
traefik_public_constraint_tag [traefik-public]:
flower_auth [admin:123456]:
sentry_dsn []:
docker_image_prefix []:
docker_image_backend [backend]:
docker_image_celeryworker [celeryworker]:
docker_image_frontend [frontend]:
(base) [root@localhost home]#
修改config.py
backend\app\app\core\config.py
修改行:
BACKEND_CORS_ORIGINS: List = ["*"]
ps: 不需要跨域的话可以不改。
修改.env
# VUE_APP_DOMAIN_DEV=localhost
VUE_APP_DOMAIN_DEV=你的主机ip或域名
ps:本机访问不需要修改。
docker换源
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": [
"https://1nj0zren.mirror.aliyuncs.com",
"https://docker.mirrors.ustc.edu.cn",
"http://f1361db2.m.daocloud.io",
"https://dockerhub.azk8s.cn"
]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker
npm换源
将frontend/Dockerfile
中的RUN npm install
替换成
RUN npm --registry https://registry.npm.taobao.org info underscore && \ npm install --registry=https://registry.npm.taobao.org
poetry改为pip
poetry
国内镜像用不了,这里换成pip
。
backend/app
新建requirments.txt
文件,内容如下:
uvicorn==0.11.3
fastapi==0.54.1
python-multipart==0.0.5
email-validator==1.0.5
requests==2.23.0
celery==4.4.2
passlib==1.7.2
tenacity==6.1.0
pydantic==1.4
emails==0.5.15
raven==6.10.0
gunicorn==20.0.4
jinja2==2.11.2
psycopg2-binary==2.8.5
alembic==1.4.2
sqlalchemy==1.3.16
pytest==5.4.1
python-jose==3.1.0
mypy==0.770
black==19.10b0
isort==4.3.21
autoflake==1.3.1
flake8==3.7.9
pytest==5.4.1
sqlalchemy-stubs==0.3
pytest-cov==2.8.1
bcrypt==3.2.0
backend/celeryworker.dockerfile
和backend/backend.dockerfile
更改行如下:
# pip install
COPY ./app/requirments.txt /app/
RUN pip config set global.index-url http://mirrors.aliyun.com/pypi/simple && \
pip config set install.trusted-host mirrors.aliyun.com && \
pip install -U pip && \
pip install -r requirments.txt
# Install Poetry
#RUN curl -sSL https://raw.githubusercontent.com/python-poetry/poetry/master/get-poetry.py | POETRY_HOME=/opt/poetry python && \
# cd /usr/local/bin && \
# ln -s /opt/poetry/bin/poetry && \
# poetry config virtualenvs.create false
# Copy poetry.lock* in case it doesn't exist in the repo
# COPY ./app/pyproject.toml ./app/poetry.lock* /app/
# Allow installing dev dependencies to run tests
#ARG INSTALL_DEV=false
#RUN bash -c "if [ $INSTALL_DEV == 'true' ] ; then poetry install --no-root ; else poetry install --no-root --no-dev ; fi"
docker-compose启动
docker-compose up -d
上述命令完成后,docker ps
查看在运行的docker,正常数量应该是7个。
服务没起来?
前面的步骤有误,没关系,改完之后重来。
docker stop $(docker ps -aq);docker rm $(docker ps -aq);docker rmi $(docker images -aq); docker-compose up -d
感谢原作者的分享,原文链接:https://www.cnblogs.com/coodyz/p/14287021.html
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 2025年我用 Compose 写了一个 Todo App
· 张高兴的大模型开发实战:(一)使用 Selenium 进行网页爬虫