Docker compose не будет строить

Использование docker-compose для сборки существующего файла docker с некоторыми небольшими изменениями не работает:

Step 1/10 : FROM alpine:latest
 ---> 055936d39205
Step 2/10 : LABEL MAINTAINER = "Peter Winter <[email protected]>"     Description = "Simple and lightweight Samba docker container, based on Alpine Linux."     Version = "1.0.2"
 ---> Using cache
 ---> e99eafd27cc6
Step 3/10 : RUN apk --no-cache upgrade && apk --no-cache add samba samba-common-tools supervisor
 ---> Running in 99c71d23252f
fetch http://dl-cdn.alpinelinux.org/alpine/v3.9/main/x86_64/APKINDEX.tar.gz
fetch http://dl-cdn.alpinelinux.org/alpine/v3.9/community/x86_64/APKINDEX.tar.gz
WARNING: Ignoring http://dl-cdn.alpinelinux.org/alpine/v3.9/main/x86_64/APKINDEX.tar.gz: could not connect to server (check repositories file)
WARNING: Ignoring http://dl-cdn.alpinelinux.org/alpine/v3.9/community/x86_64/APKINDEX.tar.gz: could not connect to server (check repositories file)
OK: 6 MiB in 14 packages
fetch http://dl-cdn.alpinelinux.org/alpine/v3.9/main/x86_64/APKINDEX.tar.gz
WARNING: Ignoring http://dl-cdn.alpinelinux.org/alpine/v3.9/main/x86_64/APKINDEX.tar.gz: could not connect to server (check repositories file)
fetch http://dl-cdn.alpinelinux.org/alpine/v3.9/community/x86_64/APKINDEX.tar.gz
WARNING: Ignoring http://dl-cdn.alpinelinux.org/alpine/v3.9/community/x86_64/APKINDEX.tar.gz: could not connect to server (check repositories file)
ERROR: unsatisfiable constraints:
  samba (missing):
    required by: world[samba]
  samba-common-tools (missing):
    required by: world[samba-common-tools]
  supervisor (missing):
    required by: world[supervisor]
ERROR: compose.cli.main.main: Service 'samba' failed to build: The command '/bin/sh -c apk --no-cache upgrade && apk --no-cache add samba samba-common-tools supervisor' returned a non-zero code: 3

Кажется, вы не используете прокси?

докер-compose.yml

version: "3.7"
services:
  samba:
    #image: pwntr/samba-alpine
    build:
      context: .
      dockerfile: Dockerfile
    container_name: samba
    volumes:
      - /some/path:/shared:ro
    restart: unless-stopped

Я попытался установить разделы args и environment с данными прокси, но без разницы.

version: "3.7"
services:
  samba:
    #image: pwntr/samba-alpine
    build:
      context: .
      dockerfile: Dockerfile
#      args: # Environment variables available at build-time
#        - http_proxy=http://127.0.0.1:3128
#        - https_proxy=http://127.0.0.1:3128
#        - HTTP_PROXY=http://127.0.0.1:3128
#        - HTTPS_PROXY=http://127.0.0.1:3128
#    environment: # Environment variables available at container run-time
#      - http_proxy=http://127.0.0.1:3128
#      - https_proxy=http://127.0.0.1:3128
#      - HTTP_PROXY=http://127.0.0.1:3128
#      - HTTPS_PROXY=http://127.0.0.1:3128
    container_name: samba
    volumes:
      - /some/path:/shared:ro
    restart: unless-stopped

Если я использую docker run или через изображение, все работает нормально.

version: "3.7"
services:
  samba:
    image: pwntr/samba-alpine
    container_name: samba
    volumes:
      - /some/path:/shared:ro
    restart: unless-stopped

Сервер/хост работает под управлением Alpine Linux, соединения работают нормально.

docker info | grep -i proxy
HTTP Proxy: http://127.0.0.1:3128/
HTTPS Proxy: http://127.0.0.1:3128/
Развертывание модели машинного обучения с помощью Flask - Angular в Kubernetes
Развертывание модели машинного обучения с помощью Flask - Angular в Kubernetes
Kubernetes - это портативная, расширяемая платформа с открытым исходным кодом для управления контейнерными рабочими нагрузками и сервисами, которая...
Как создать PHP Image с нуля
Как создать PHP Image с нуля
Сегодня мы создадим PHP Image from Scratch для того, чтобы легко развернуть базовые PHP-приложения. Пожалуйста, имейте в виду, что это разработка для...
0
0
694
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Попробуй это docker build -t localhost/smb:v1 .

Вам лучше изменить RUN apk --no-cache upgrade && apk --no-cache add samba samba-common-tools supervisor на RUN apk --no-cache --upgrade add samba samba-common-tools supervisor, чтобы избежать нескольких сетевых запросов.

Переменные среды действуют только в командной строке, а не в APK, например, в yum, вам нужно установить /etc/yum.conf, apk - то же самое.

lmlmvxi 30.05.2019 04:45

Пробовал docker build -t localhost/smb:v1 . все равно выдает ту же ошибку. Мои env vars уже установлены, иначе ничего не будет работать, верно? ``` окружение | grep -i proxy http_proxy=127.0.0.1:3128 https_proxy=127.0.0.1:3128 ``` Я занимался этим пару дней, это действительно меня поразило :(

mybigman 30.05.2019 05:20

Попробуйте глобальные настройки, такие как ``` RUN echo 'export http_proxy=х.х.х.х:3128' >> /etc/profile RUN echo 'export https_proxy=х.х.х.х:3128' >> /etc/profile ``` 'xxxx' должен быть адресом, доступным из внутри контейнера.

lmlmvxi 30.05.2019 05:56

нет... Я, конечно, в растерянности: / Чего я не понимаю, так это того, что если я просто использую image: pwntr/samba-alpine в файле компоновки, он работает. Разве это не доступ к моему прокси-серверу из контейнера?

mybigman 30.05.2019 08:44

Если вы используете фиксированный image:, он не отключается и не перестраивает его, он просто загружает встроенный образ из Docker Hub (или другого реестра).

David Maze 30.05.2019 12:10
Ответ принят как подходящий

В случае, если у кого-то еще есть проблема.

Запустите ifconfig и найдите IP-адрес docker0

Отредактируйте cntlm.conf и добавьте следующее

Listen 172.17.0.1:3128 # IP-адрес docker0

Перезапустить cntlm

Создайте файл конфигурации в /root/.docker/config.json и добавьте следующее

{
 "proxies":
 {
   "default":
   {
     "httpProxy": "http://172.17.0.1:3128",
     "httpsProxy": "http://172.17.0.1:3128",
     "ftpProxy": "http://172.17.0.1:3128"
   }
 }
}

Другие вопросы по теме