我通过 GitLab CI/CD 创建的 Nginx Docker 容器如何使用我的存储库中的 html 文件? .gitlab-ci.yml:docker-compose.yml:

问题描述

为了了解有关此主题的更多信息,我在 RaspBerry Pi4 上设置了多个 Docker 容器,目的是创建一个功能正常的工作流。

设置

首先,我有一个带有此 image 的可用 GitLab 社区版(由于与 ARM 的兼容性)。
其次,还有我使用的 GitLab Runner,它也连接到 GitLab。 最后,我为自己创建了一个 docker-compose 文件,正在使用该文件image 创建一个 Nginx-Container。在不使用 CI/CD 的情况下创建 Nginx-Container 工作得很好。

问题

现在问题本身:
启用 CI/CD 并将 Runner 分配给管道。存储库内部是 index.html(在文件夹“html”中)、一个 .gitlab-ci.yml 文件和 docker-compose.yml。以下是两个 .yml 文件内容

.gitlab-ci.yml:

image: docker:dind

variables:
  DOCKER_TLS_CERTDIR: "/certs"

services:
  - docker:dind

build:
  stage: build
  script:
    - apk add --no-cache docker-compose
    - docker-compose up -d

docker-compose.yml:

version: '3'
services:
  Nginx: 
    image: Nginx:latest
    container_name: Nginx
    restart: always
    volumes:
      - /builds/Dennis/first-project/html:/usr/share/Nginx/html
    ports:
      - "20080:80"
      - "20022:22"
      - "20443:443"
    privileged: true

管道安装 docker-compose 并创建容器。我什至可以通过 IP 和端口访问 Nginx 容器,但收到错误消息“403 Forbidden”。查看此容器的日志会输出以下错误

directory index of "/usr/share/Nginx/html/" is forbidden

我在运行时查看了这个容器的目录,但是“/usr/share/Nginx/html/”里面没有内容,这让我相信管道或docker-compose没有访问存储库中的文件或路径配置错误(很可能是第二个)。我试图修改 docker-compose.yml(“卷”的第一部分)中的路径,但无济于事。

我必须以哪种方式编辑我的配置,也许只有我在 docker-compose.yml 中的路径,以便 Nginx 容器的创建从存储库中获取文件

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)