Когда я пытаюсь собрать следующий Dockerfile с командной строкой docker build -t my-image-name .
FROM continuumio/miniconda3
EXPOSE 8880
# Set working directory
WORKDIR /my-workingdir
# Add scripts to docker workdir
ADD Dockerfile .
ADD environment.yml .
ADD all-my-python-files.py .
# Update & installation of linux packages
RUN apt-get update -y && \
apt-get install -y libgl1-mesa-glx apt-utils && \
apt-get install -y openssh-server && \
apt-get install -y net-tools
# Conda update and creation of environment
RUN conda update conda \
&& conda env create -f environment.yml \
# Activation of environment
&& echo "source activate environment" > ~/.bashrc
# Mount volumes
VOLUME /my-workingdir/Input
CMD ["python" , "execute_given_python_file.py"]
Я получаю ошибку во время сборки: /bin/sh: 1: : not found
Я создаю образ в macOS Hihg Sierra Version 10.13.6, но когда я собираю образ в среде CentOS Linux (внутри другого контейнера Docker), Dockerfile работает отлично. Версия Docker, которую я использую на Mac:
- Клиент:
- Версия: 18.06.1-ce
- Версия API: 1.38
- Сервер:
- Двигатель:
- Версия: 18.06.1-ce
- Версия API: 1,38 (минимальная версия 1.12)
Я пробовал следующее:
- Переустановите Docker на Mac
- apt-get update (без -y)
- sudo apt-get update
- Не обновлять
- Не создавать среду conda
- Не CMD
Но я все еще получаю ошибки. Как решить проблему?
UPDATE:
Последние строки перед появлением сообщения об ошибке во время построения изображения:
Получить: 6 http://security.debian.org/debian-security stretch / updates / main amd64 Пакеты [490 кБ]
Получить: 7 http://deb.debian.org/debian stretch-updates / main amd64 Packages [5476 B]
Получите: 8 http://deb.debian.org/debian растягивающихся / основных пакетов amd64 [9500 кБ]
Получено 10,3 МБ за 2 с (4564 кБ / с)
Чтение списков пакетов ...
/ bin / sh: 1:: не найдено
Docker возвращает ненулевой код: 127
Чтобы повторить ошибку, я включаю скрипт на python и среду yml.
Сценарий Python all-my-python-files.py протестирован во время ошибки:
# Name of file: all-my-python-files.py
import openpyxl
import requests
import datetime as dt
import time
from pandas.io.json import json_normalize
import argparse
import os
import pandas as pd
print("At this point, libraries should be imported")
print("End of python script")
Файл environment.yml:
name: environment
channels:
- statiskit
- anaconda
- conda-forge
- defaults
dependencies:
- asn1crypto=0.24.0
# For space the following line are not separated into single lines:
- cffi = 1.11.5
- chardet = 3.0.4
- криптография = 2.3.1
- et_xmlfile = 1.0.1
- идна = 2,7
- jdcal = 1,4
- openpyxl = 2,5,5
- pycparser = 2,18
- pyopenssl = 18.0.0
- pysocks = 1.6.8
- запросы = 2.19.1
- urllib3 = 1,23
- CA-сертификаты = 2018.8.24
- openssl = 1.0.2p
- время = 1,7
- блас = 1,0
- certifi = 2018.8.24
- intel-openmp = 2018.0.3
- libedit = 3.1.20170329
- libffi = 3.2.1
# - libgfortran = 3.0.1 # Не работает в Linux
- мкл = 2018,0,3
- mkl_fft = 1.0.4
- mkl_random = 1.0.1
- ncurses = 6.1
- NumPy = 1,15,1
- numpy-base = 1.15.1
- панды = 0,23,4
- пункт = 10.0.1
- python = 3.7.0
- python-dateutil = 2.7.3
- pytz = 2018,5
- readline = 7.0
- setuptools = 40.2.0
- шесть = 1.11.0
- sqlite = 3,24,0
- тк = 8,6,8
- колесо = 0.31.1
- xz = 5.2.4
- zlib = 1.2.11
# - libcxx = 4.0.1 # Не работает в Linux
# - libcxxabi = 4.0.1 # Не работает в Linux
- пункт:
- datetime == 4.2
- zope.interface == 4.5.0
префикс: / Users / Elias / miniconda3 / envs / xlshp