运行 堆栈 Docker 容器
Run Stack Docker container
我对 Stack 的 Docker 集成感到困惑。
我设法创建了一个图像,方法是将 docker
部分添加到 stack.yml
和 enable: true
,如 integration guide 中所述。
我还可以使用
在本地启动项目
stack --docker-run-args='--net=bridge --publish=8081:8081' exec myproject
我导航到 localhost:8081 - 很好用。
但是如何只使用 Docker 启动项目?有了这个我启动容器:
docker run -d --restart=always --net=bridge --publish=8081:8081 myproject
但此时似乎什么都没有 运行。如果我导航到 localhost:8081,我会被拒绝连接。
问题已解决!
缺少在容器中启动项目,如Stack's docs另一部分所述。具体来说:
要么手动启动可执行文件,在/usr/local/bin/
容器中(不是很方便)
或通过将以下内容添加到 stack.yaml 来配置 Stack 以自动启动可执行文件:
image:
containers:
-
name: "myimage"
base: "baseimage"
entrypoints:
- myexecutable
在此之后,运行 stack image container
构建映像(在此之前可能还需要 运行 stack build
)。
然后确保图像已创建/检查名称:
docker image ls
最后,给运行吧:
docker run --net=bridge --publish=8081:8081 myimage
我对 Stack 的 Docker 集成感到困惑。
我设法创建了一个图像,方法是将 docker
部分添加到 stack.yml
和 enable: true
,如 integration guide 中所述。
我还可以使用
在本地启动项目stack --docker-run-args='--net=bridge --publish=8081:8081' exec myproject
我导航到 localhost:8081 - 很好用。
但是如何只使用 Docker 启动项目?有了这个我启动容器:
docker run -d --restart=always --net=bridge --publish=8081:8081 myproject
但此时似乎什么都没有 运行。如果我导航到 localhost:8081,我会被拒绝连接。
问题已解决!
缺少在容器中启动项目,如Stack's docs另一部分所述。具体来说:
要么手动启动可执行文件,在
/usr/local/bin/
容器中(不是很方便)或通过将以下内容添加到 stack.yaml 来配置 Stack 以自动启动可执行文件:
image: containers: - name: "myimage" base: "baseimage" entrypoints: - myexecutable
在此之后,运行 stack image container
构建映像(在此之前可能还需要 运行 stack build
)。
然后确保图像已创建/检查名称:
docker image ls
最后,给运行吧:
docker run --net=bridge --publish=8081:8081 myimage