Docker Image with Nginx and 运行 docker compose and in Jenkins Pipeline

Docker Image with Nginx and running with docker compose and in Jenkins Pipeline

我已经有一个 docker 文件用于 nginx 的自定义图像,这工作正常。

FROM library/nginx:1.13.2
LABEL maintainer="san@test.com"

# Remove the default Nginx configuration file
RUN rm -v /etc/nginx/nginx.conf

# Copy a configuration file from the current directory
ADD nginx.conf /etc/nginx/

# forward request and error logs to docker log collector
RUN ln -sf /dev/stdout /var/log/nginx/access.log \
    && ln -sf /dev/stderr /var/log/nginx/error.log \
# Make PageSpeed cache writable
    && mkdir -p /var/cache/ngx_pagespeed && \
    chmod -R o+wr /var/cache/ngx_pagespeed
ADD server.crt /etc/nginx/ssl/
ADD server.key /etc/nginx/ssl/

ADD conf.d/ /etc/nginx/conf.d/
ADD proxy.d/ /etc/nginx/proxy.d/
CMD ["nginx", "-g", "daemon off;"]

我也在尝试安装 aws cli,这样我就可以复制一些 s3 文件并动态更改 nginx 配置,一旦 awsCli 在容器中可用,我将使用 CMD[] 进行更改。

我尝试并阅读了 google 中的许多链接,但文档或阅读没有帮助,尤其是如何通过凭据。

我用两种方式创建图像。首先是通过詹金斯管道(下面的片段

stages {
        stage('Build Docker image') {
            steps {
                script {
                    docker.withRegistry("http://xyz-1.amazonaws.com", "ecr:eu-central-1:aws-credentials") {
                        def customImage = docker.build("web-proxy:${CY_RELEASE_VERSION}", ".")
                        customImage.push()

                    }
                }
            }
        }

另外一种方式是在本地我手动构建镜像如下

docker build -t web-proxy-dev_san_1:1.11 .

我不确定如何在 DockerFile 中使用 aws-cli 并让图像在本地和 jenkins 中自动获取凭据。我认为对于 jenkins,如果我设法安装 aws-cli 可能会起作用,因为我正在使用管道中指定的 aws-credentials,但我还没有达到那个阶段。

您可以使用 AWS 插件在您的管道中与 AWS 交互,查看以下示例:link