python - Celery:通过 Dockerfile 中的 CMD 传递 Docker 变量
问题描述
Docker run 不会使用此命令启动容器。
celery -A proj worker -Ofair --concurrency=600 --without-gossip --time-limit=500 --pool=gevent -l info -n $(uuidgen -r)
.
但是,它将从以下命令开始:
celery -A proj worker -Ofair --concurrency=600 --without-gossip --time-limit=500 --pool=gevent -l info -n celery1
这是在 Ubuntu 18.04 LTS 上。如果我在终端中运行该命令,芹菜将毫无问题地启动。
Dockerfile
#Download base image ubuntu 16.04
FROM python:3.6-slim
COPY . .
RUN pip install -r requirements.txt
EXPOSE 80 443 6379 9200 9300
CMD celery -A proj worker -Ofair --concurrency=600 --without-gossip --time-limit=500 --pool=gevent -l info -n $(uuidgen -r)``
我希望这会像在终端中运行时那样为 celery 实例生成一个 uuid。
解决方案
这是因为 docker 映像上不存在 uuidgen。
推荐阅读
- javascript - React Native 处理获取错误到外部文件
- reactjs - 如何在reactjs中的图片库中添加下一个,上一个和旋转
- python - 如何使用 python shift 函数通过使用该特定列的前一行值来增加单元格的值?
- css - 视频未在轮播中播放
- android - --target native-lib 不是目录
- node.js - expect(spiedMethod).not.toBeCalled() 失败,因为它正在被另一个测试调用
- .net-core - .NET Core 的类似 AxoCover 的体验
- javascript - 只读单选按钮,直到表单完全加载
- java - 计算两条线之间的角度
- graph - 性能 SQL Server 2017 图表与 Neo4j