如何提前向主机写入文件,然后启动Docker容器



我的任务是在Amazon ECS Fargate上部署第三方OSRM服务。

对于启动时的OSRM docker,您需要传输一个包含地理数据的文件。

问题是亚马逊ECS Fargate不提供对主机文件系统的访问,也不提供在容器部署期间附加文件和文件夹的能力。

因此,我想创建一个中间映像,在构建时,该映像使用geodata保存文件,在启动容器时,它将在定义卷时使用它。

谢谢!

据我所知,AmazonECS是一个普通的容器协调器,不实现docker-swarm,所以像docker-configs这样的东西是不可能的。

然而,你应该能够做这样的事情:-

ID=$(docker create --name my-osrm osrm-base-image)
docker cp ./file.ext $ID:/path/in/container
docker start $ID

解决方案非常简单。

对于这个Dockerfile,我在本地机器上创建了一个映像,并将其托管在DockerHub:上

FROM osrm/osrm-backend:latest
COPY data /data
ENTRYPOINT ["osrm-routed","--algorithm","mld","/data/andorra-latest.osm.pbf"]

之后,在没有任何设置和音量的情况下,我在AWS ECS 中启动了此映像

相关内容

最新更新