我必须在Docker Compose上运行简单的服务。第一个映像将托管先前创建的服务,而第二个映像(取决于第一个映像)将运行测试。所以我创建了Dockerfile
:
FROM python:2.7-slim
WORKDIR /flask
COPY requirements.txt requirements.txt
RUN pip install -r requirements.txt
COPY . .
CMD ["python", "routes.py"]
一切正常。我创建了一些简单的测试,这些测试也有效,并将文件与routes.py
放在同一目录中。
因此,我尝试创建docker-compose.yml
文件并执行以下操作:
version: '2'
services:
app:
build: .
command: 'python MyTest.py'
ports:
- "5000:5000"
tests:
build:
context: Mytest.py
depends_on:
- app
当我运行它时,我收到一个错误:
TypeError: You must specify a directory to build in path
[13341] Failed to execute script docker-compose
那么我应该如何指定这些目录以及将其放置在app
或tests
服务中的位置?
答案 0 :(得分:0)
使用dockerfile
docker compose时,您需要指定version-2
字段。
检出this。
答案 1 :(得分:0)
修改您的构建命令:
...
build:
context: .
dockerfile: Dockerfile
...
答案 2 :(得分:0)
TypeError:您必须指定要在路径中构建的目录 [13341]无法执行脚本docker-compose
以上错误告诉您 let getvalue = 0.1890
let finalValue = roundf(Float(getvalue) * 100) / 100
print(finalValue) //0.19
应该是放置Dockerfile的文件夹,但是您似乎可以使用同一张图片来测试您的产品,我认为无需指定它。
我想您的context:
将访问您应用容器的MyTest.py
端口以进行测试。因此,您需要的是下一个:
5000
在这里,您需要注意的是:您应该在version: '2'
services:
app:
build: .
container_name: my_app
ports:
- "5000:5000"
tests:
build: .
depends_on:
- app
command: python MyTest.py
中访问http://my_app:5000
进行测试。
同时,在MyTest.py
中建议您MyTest.py
一段时间,因为sleep
只能确保depends_on
在tests
之后开始,但不能保证您的烧瓶已经准备好了,您也可以考虑使用this来确保订单到位。