我有一个Django项目,在我的本地计算机上运行良好。我想在AWS上托管相同的服务器,但对使用哪种服务以及最佳实践却感到困惑。我是否使用EC2,在其上创建ubuntu实例并安装Docker或使用ECS?
将django项目转移到AWS的最佳实践是什么。我是否在Docker Hub上创建存储库?
请帮我解释一下最佳的工作流程。
我的docker-compose
文件如下所示:
version: '3'
services:
db:
image: mysql:latest
restart: always
environment:
- MYSQL_DATABASE=tg_db
- MYSQL_ROOT_PASSWORD=password
volumes:
- ./dbdata:/var/lib/mysql
web:
build: .
command: bash -c "python manage.py migrate && python manage.py runserver 0.0.0.0:8000"
volumes:
- .:/code
ports:
- "8000:8000"
depends_on:
- db
谢谢!
UPDATE (我进行部署的步骤)
Dockerfile
:# Start with a python image
FROM python:3
# Some stuff that everyone has been copy-pasting
# since the dawn of time.
ENV PYTHONUNBUFFERED 1
# Install things
RUN apt-get update
# Make folders and locations for project
RUN mkdir /code
COPY . /code
WORKDIR /code/project/t_backend
# Install requirements
RUN pip install -U pip
RUN pip install -Ur requirements.txt
我使用了
sudo docker-compose up -d
并且项目在本地运行现在我将
tg_2_web:latest
推送到ECR
上。database
和Apache
容器在哪里起作用?我是否必须为mysql
database
和apache
容器创建一个单独的存储库。如何使用
ECS
连接所有容器?谢谢 !
最佳答案
这个问题的答案可能非常广泛,但只是让您了解它应该经历的所有过程-
Beanstalk多容器-相对于ECS而言较新,它在后台使用ECS将docker镜像部署到集群。您不必担心资源,只需将JSON文件提供给您的环境即可,剩下的由Beanstalk负责。
Fargate -管理或部署容器,而不必担心您的集群/管理器等。非常新,从来没有机会对其进行研究。
参考-
https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task_definitions.html
https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/create_deploy_docker_ecs.html
https://aws.amazon.com/fargate/
关于django - 在AWS上托管Dockerized Django项目,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/49725271/