我有一个容器化的aws cloudformation register-type --type-name My::Resource::Example --schema-handler-package [s3 object path] --type RESOURCE
应用程序以及一个Django Rest Framework
容器用于后台任务处理,还有Celery
容器作为代理。
我想将此应用程序部署到Redis
。我一直在寻找解决方案,但到目前为止还没有运气。
这是我有两个问题-
是否可以将多容器组应用程序部署到Azure Serverless
?
是否可以将上述的技术堆栈部署到Azure Serverless
? (请提供示例或指向文档的链接以指导我。)
项目的Docker配置-
Azure Serverless
docker-compose
version: "3"
services:
redis:
container_name: redis-container
image: "redis:latest"
ports:
- "6379:6379"
restart: always
command: "redis-server"
snowflake-optimizer:
container_name: snowflake-optimizer
build:
context: .
dockerfile: Dockerfile
volumes:
- .:/snowflake-backend
ports:
- "80:80"
expose:
- "80"
restart: always
command: "python manage.py runserver 0.0.0.0:80"
links:
- redis
celery:
container_name: celery-container
build:
context: .
dockerfile: Dockerfile.celery
command: "celery -A snowflake_optimizer worker -l INFO"
volumes:
- .:/snowflake-optimizer
restart: always
links:
- redis
depends_on:
- snowflake-optimizer
(Django Rest框架)
Dockerfile
FROM python:3.7-slim
ENV PYTHONUNBUFFERED 1
RUN apt-get update &&\
apt-get install python3-dev default-libmysqlclient-dev gcc -y &&\
apt-get install -y libssl-dev libffi-dev &&\
python -m pip install --upgrade pip &&\
mkdir /snowflake-backend
WORKDIR /snowflake-backend
COPY ./requirements.txt /requirements.txt
COPY . /snowflake-backend
EXPOSE 80
RUN pip install -r /requirements.txt
RUN pip install -U "celery[redis]"
RUN python manage.py makemigrations &&\
python manage.py migrate
CMD [ "python", "manage.py", "runserver", "0.0.0.0:80"]
(芹菜)
Docker.celery
答案 0 :(得分:1)
问题是Azure Serverless
在这里是什么意思。通常,人们将无服务器与无服务器功能相关联。截至2020年11月,Azure Functions
不支持Docker部署,至少不以某种方式能够部署Django应用程序。
可以理解,还有其他一些选项可以将容器部署到Azure:
答案 1 :(得分:0)
使用Azure CLI使用Docker Compose文件在Azure容器实例上部署多容器应用程序:
az container create --resource-group myResourceGroup --file docker-compose.yaml
您还可以直接使用docker-compose CLI。