Tin*_* Ng 11 docker dockerfile docker-compose
这是我想要做的:
还有一个看起来像这样的docker-compose.yml:
task1:
build: ./task1
volumes_from:
- task1_output
command: ./task1.sh
task1_output:
image: alpine:3.3
volumes:
- /root/app/dist
command: /bin/sh
# essentially I want to copy task1 output into task2 because they each use different images and use different tech stacks...
task2:
build: ../task2
volumes_from:
- task2_output
- task1_output:ro
command: /bin/bash -cx "mkdir -p task1 && cp -R /root/app/dist/* ."
Run Code Online (Sandbox Code Playgroud)
所以现在所有必需的文件都在task2容器中...如何启动Web服务器并在task2中公开包含内容的端口?
我被困在这里......如何从combine-tasks/Dockerfile中的task2_output访问这些东西:
combine-both-task2:
build: ../combine-tasks
volumes_from:
- task2_output
Run Code Online (Sandbox Code Playgroud)
Jet*_*nes 14
在最新版本的docker中,命名卷将数据容器替换为在容器之间共享数据的简便方法.
docker volume create --name myshare
docker run -v myshare:/shared task1
docker run -v myshare:/shared -p 8080:8080 task2
...
Run Code Online (Sandbox Code Playgroud)
这些命令将设置一个本地卷,该-v myshare:/shared参数将使该共享可用作/shared每个容器内的文件夹.
要在撰写文件中表达:
version: '2'
services:
task1:
build: ./task1
volumes:
- 'myshare:/shared'
task2:
build: ./task2
ports:
- '8080:8080'
volumes:
- 'myshare:/shared'
volumes:
myshare:
driver: local
Run Code Online (Sandbox Code Playgroud)
为了测试这个,我做了一个小项目:
- docker-compose.yml (above)
- task1/Dockerfile
- task1/app.py
- task2/Dockerfile
Run Code Online (Sandbox Code Playgroud)
我使用node的http-server作为task2/Dockerfile:
FROM node
RUN npm install -g http-server
WORKDIR /shared
CMD http-server
Run Code Online (Sandbox Code Playgroud)
并task1/Dockerfile用于python:alpine显示两个不同的堆栈写入和读取.
FROM python:alpine
WORKDIR /app
COPY . .
CMD python app.py
Run Code Online (Sandbox Code Playgroud)
这里的 task1/app.py
import time
count = 0
while True:
fname = '/shared/{}.txt'.format(count)
with open(fname, 'w') as f:
f.write('content {}'.format(count))
count = count + 1
time.sleep(10)
Run Code Online (Sandbox Code Playgroud)
获取这四个文件,然后通过docker compose up目录运行它们docker-compose.yml- 然后访问$ DOCKER_HOST:8080以查看稳定更新的文件列表.
此外,我正在使用docker版本1.12.0和compose版本,1.8.0但这应该适用于几个版本.
请务必查看docker文档,了解我可能错过的详细信息:https:
//docs.docker.com/engine/tutorials/dockervolumes/
| 归档时间: |
|
| 查看次数: |
10277 次 |
| 最近记录: |