Docker compose 在构建docker compose的映像时使用Alpine的本地镜像,而不是传统存储库

Docker compose 在构建docker compose的映像时使用Alpine的本地镜像,而不是传统存储库,docker-compose,alpine,Docker Compose,Alpine,在使用docker compose构建容器时,是否可以使用docker使用的本地存储库(镜像) 我有一个本地镜像,我感兴趣的是,当我用docker compose build构建一个容器时,apk是从本地镜像下载的,而不是从Internet下载的 例如 如果使用Dockerfile进行本地部署 FROM alpine:3.13 # Install packages and remove default server definition RUN apk --no-cache add php8=

在使用docker compose构建容器时,是否可以使用docker使用的本地存储库(镜像)

我有一个本地镜像,我感兴趣的是,当我用docker compose build构建一个容器时,apk是从本地镜像下载的,而不是从Internet下载的

例如

如果使用Dockerfile进行本地部署

FROM alpine:3.13

# Install packages and remove default server definition
RUN apk --no-cache add php8=8.0.2-r0 php8-fpm php8-opcache php8-mysqli php8-json \
    php8-openssl php8-curl php8-soap php8-zlib php8-xml php8-phar php8-intl php8-dom php8-xmlreader php8-ctype \
    php8-session php8-simplexml php8-mbstring php8-gd nginx supervisor curl php8-exif php8-zip php8-fileinfo \
    php8-iconv php8-soap tzdata htop mysql-client php8-pecl-imagick php8-pecl-redis php8-tokenizer php8-xmlwriter \
    nano && rm /etc/nginx/conf.d/default.conf
使用
docker compose build部署容器时,我喜欢使用我的本地alpine存储库,而不是alpine的任何internet镜像,例如:

fetch https://dl-cdn.alpinelinux.org/alpine/v3.13/main/x86_64/APKINDEX.tar.gz
fetch https://dl-cdn.alpinelinux.org/alpine/v3.13/community/x86_64/APKINDEX.tar.gz
(1/124) Installing ca-certificates (20191127-r5)
(2/124) Installing brotli-libs (1.0.9-r3)
(3/124) Installing nghttp2-libs (1.42.0-r1)
...
您需要一个本地

在阅读完alpine docs后,我使用本地镜像的静态IP获得解决方案。我尝试使用主机名(repoalpine.test),但找不到如何在docker网络上公开主机名

RUN apk --no-cache -X http://172.20.0.254/v3.13/main -X http://172.20.0.254/v3.13/community \
    add php8=8.0.2-r0 php8-fpm php8-opcache php8-mysqli php8-json \
    php8-openssl php8-curl php8-soap php8-zlib php8-xml php8-phar php8-intl php8-dom php8-xmlreader php8-ctype \
    php8-session php8-simplexml php8-mbstring php8-gd nginx supervisor curl php8-exif php8-zip php8-fileinfo \
    php8-iconv php8-soap tzdata htop mysql-client php8-pecl-imagick php8-pecl-redis php8-tokenizer php8-xmlwriter \
    nano && rm /etc/nginx/conf.d/default.conf
现在工作

Step 7/22 : RUN apk --no-cache -X http://172.20.0.254/v3.13/main -X http://172.20.0.254/v3.13/community     add php8=8.0.2-r0 php8-fpm php8-opcache php8-mysqli php8-json     php8-openssl php8-curl php8-soap php8-zlib php8-xml php8-phar php8-intl php8-dom php8-xmlreader php8-ctype     php8-session php8-simplexml php8-mbstring php8-gd nginx supervisor curl php8-exif php8-zip php8-fileinfo     php8-iconv php8-soap tzdata htop mysql-client php8-pecl-imagick php8-pecl-redis php8-tokenizer php8-xmlwriter     nano && rm /etc/nginx/conf.d/default.conf
 ---> Running in 4f2c6521e6e6
fetch http://172.20.0.254/v3.13/community/x86_64/APKINDEX.tar.gz
...

我的兴趣不是做docker pull,而是在使用docker compose build构建Alpine映像时,如果在docker文件上运行了apk add somepackage docker compose not调用Alpine的存储库。而是打电话给我当地的回购协议。Docker Regsitry是“注册表是一个无状态、高度可扩展的服务器端应用程序,用于存储和分发Docker映像”