0

我有一个 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 测试页面不会出现。所以我怀疑路径有问题?或者有什么我完全想念的吗?提前致谢。

4

1 回答 1

1

使用 docker 意味着将数据复制到相应的容器中。当 docker 完成运行后,容器不会保留任何数据。

您可能会尝试将一些主机目录挂载到 docker 以获得持久存储。例如,请参阅此答案

希望这可以帮助!

于 2018-06-05T16:18:54.140 回答