我有一个用Django编写的应用程序,我正在尝试在Digital Ocean droplet上的docker中运行它。目前我有两个文件。
有人能建议如何摆脱docker compose吗。yml文件并集成Dockerfile中的所有命令???
文档文件
FROM python:3
ENV PYTHONUNBUFFERED 1
RUN mkdir /code
WORKDIR /code
COPY . /code/
RUN pip install -r reqirements.txt
RUN python /code/jk/manage.py collectstatic --noinput
docker编写。yml公司
version: '3'
services:
web:
build: .
command: python jk/manage.py runserver 0.0.0.0:8081
volumes:
- .:/code
ports:
- "8081:8081"
我运行我的应用程序和docker映像,如下所示:
输出:
Starting workspace_web_1 ...
Starting workspace_web_1 ... done
Attaching to workspace_web_1
web_1 | Performing system checks...
web_1 |
web_1 | System check identified no issues (0 silenced).
web_1 | December 02, 2017 - 09:20:51
web_1 | Django version 1.11.3, using settings 'jk.settings'
web_1 | Starting development server at http://0.0.0.0:8081/
web_1 | Quit the server with CONTROL-C.
...
好的,我采取了以下方法:Dockerfile
FROM python:3
ENV PYTHONUNBUFFERED 1
RUN mkdir /code
WORKDIR /code
COPY . /code/
RUN pip install -r reqirements.txt
RUN python /code/jk/manage.py collectstatic --noinput
然后我跑了:
docker build -t "django:v1" .
所以docker images-a抛出:
docker images -a
REPOSITORY TAG IMAGE ID CREATED SIZE
django v1 b3dec6aaf9b9 5 minutes ago 949MB
<none> <none> 55370397f7f2 5 minutes ago 948MB
<none> <none> e7eba7113203 7 minutes ago 693MB
<none> <none> dc3d7705c45a 7 minutes ago 691MB
<none> <none> 12825382746d 7 minutes ago 691MB
<none> <none> 2304087e8b82 7 minutes ago 691MB
python 3 79e1dc9af1c1 3 weeks ago 691MB
最后我跑了:
cd /opt/workspace
docker run -d -v /opt/workspace:/code -p 8081:8081 django:v1 python jk/manage.py runserver 0.0.0.0:8081
两个简单的问题:
以及@vmonteco的回复:
太长别读
您可以将一些信息传递给docker文件(要运行的命令),但这并不等同于docker编写的所有文件。yml文件内容。
您可以替换docker compose。虽然yml文件中有命令行(docker compose正好取代了它)。
在您的情况下,可以将要运行的命令作为默认命令添加到Dockerfile中(这与将其传递给运行时启动的容器大致不同):
CMD ["python", "jk/manage.py", "runserver", "0.0.0.0:8081"]
或者直接在命令行中传递此命令,如卷和端口,它应该给出如下内容:
docker run -d -v .:/code -p 8081:8080 yourimage python jk/manage.py runserver 0.0.0.0:8081
但是
请记住,Dockerfiles和docker compose有两个完全不同的用途。
>
docker compose是一种启动和编排容器以构建应用程序的工具(您可以添加一些信息,如构建上下文路径或所需图像的名称,但不能添加Dockerfile内容本身)。
因此,要求“将docker-compose.yml文件转换为Dockerfile文件”实际上并不相关。
这是有关转换docker compose的更多信息。yml将文件放入一个(或多个)命令行中,手动启动容器。
docker-compose
的目的正是为了摆脱这些命令行以使事情变得更简单(它使其自动化)。
也:
从manage.py留档:
请勿在生产设置中使用此服务器。它还没有经过安全审计或性能测试。(这就是它将保持的方式。
Django的runserver包含在管理中。py工具不适用于生产。
您可能需要考虑在代理后面使用WSGI服务器。
有人能把它翻译成python代码吗,例如,我知道第一行和第二行将是 我只是想不出其他的
我使用thymeleaf生成一个包含一些javascript的页面。js是用thymeleaf生成的,目的是将java模型的某些部分放到我的页面中。 我知道如何使用thymeleaf将一些翻译成html。 但是现在我想把一些thymeleaf翻译成我生成的js,以便集中我的翻译工作。 理想情况下,我希望有一个变量,该变量将包含我翻译的所有消息。这个变量将在genrated js脚本中初始化。 有关
docker-compose.yml 启动一个 order 和 一个 peer 节点。 orderer: image: hyperledger/fabric-orderer environment: - ORDERER_GENERAL_LEDGERTYPE=ram - ORDERER_GENERAL_BATCHTIMEOUT=10s - ORDERER_GENERAL_BAT
docker-compose.yml 启动一个 5 个节点的服务,包括 zookeeper、fabric-order 和 3 个 kafka 节点。
下面的groovy代码在脚本构建中运行良好。格拉德尔: 我不能成功地将它的语法翻译成kotlin build.gradle.kts。有人能给我正确的翻译吗?
问题内容: 我有包含以下代码的python代码。 不幸的是,对python中的所有键进行循环并不能达到我的目的,因此我想将此代码转换为C 。对于以元组为键的python词典,最佳的C 数据结构是什么?以上代码的C ++等价物是什么? 我在boost库中查看了稀疏矩阵,但是找不到简单的方法来仅在非零元素上循环。 问题答案: 字典将是c ++中的std :: map,具有两个元素的元组将是std ::