我有一个dockerized nginx服务器,我可以在本地计算机上构建和运行,没有任何问题。所以现在我想在gitlab运行器的帮助下部署它。
这是我简单的dockerfile:
FROM nginx
COPY web /usr/share/nginx/html
EXPOSE 80
因此,如果我在本地计算机上构建并运行它,它就可以工作。但是我在这一点上有第一个问题:docker在哪里运行nginx服务器?因为如果我看/ usr / share那里什么都没有。
现在,如果我将项目推送到gitlab,请注册一个运行器并让它执行以下gitlab-ci文件:
image: docker:stable
variables:
DOCKER_DRIVER: overlay2
services:
- docker:dind
before_script:
- docker info
build:
script:
- docker build -t bd24_nginx .
- docker run -d -p 80:80 bd24_nginx
......工作完成得很好。 gitlab页面的控制台输出中没有错误。这是输出:
Successfully built 9903dc370422
Successfully tagged bd24_nginx:latest
$ docker run -d -p 80:80 bd24_nginx
b1e24c7cf9af8a43b3c2418d1ca1b90a58e445eb6b0b0ac9cde61f99be8cff7b
Job succeeded
但是,如果我现在访问我的服务器的IP地址,静态html测试页面不会显示。所以我怀疑这些路径有问题吗?还是我有什么遗失? 提前谢谢。
答案 0 :(得分:1)
使用泊坞窗意味着数据将复制到相应的容器中。当docker完成运行时,容器不会保留任何数据。
您可能尝试将某些主机目录安装到docker以获得持久存储。 请参阅this answer for instance。
希望这有帮助!