我有一个Django项目,在我的本地机器上工作正常。我想在AWS上托管相同内容,但对使用什么服务以及最佳做法感到困惑。我是否使用EC2,在其上创建一个ubuntu实例并安装Docker或使用ECS?
将我的django项目转移到AWS的最佳做法是什么?我是否在Docker中创建存储库?
请帮我解释一下这方面的最佳工作流程。
我的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
谢谢!
更新(我采取的部署步骤)
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
连接所有容器?
谢谢!
答案 0 :(得分:3)
这个问题的答案可能非常广泛,但只是为了让你了解它应该经历的所有过程 -
打包图片
存储图片
部署图片
参考 -
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/