2016-10-07 4 views
1

Я хотел бы построить образ докеры из сценария bash для подготовки моей системы.запуск базового сценария bash на сборке docker из системы windows

я пытаюсь построить мой образ и Докер сказать мне «успешно построен», но когда я пытаюсь запустить это я могу видеть это сообщение: «Нет такого файла или каталога» и я не могу просматривать контейнер Kitematic приложение.

Если я запустил докер, проверьте мой контейнер (созданный правильно, но не запущен). Я могу просмотреть ExitCode 127.

Можете ли вы помочь мне разобраться в проблеме, а также помочь мне правильно запустить простой скрипт bash для создания докеры изображений.

dockerfile:

FROM ubuntu:trusty 
MAINTAINER barbie rambo <[email protected]> 

RUN apt-get update \ 
    && apt-get install -y openjdk-7-jdk wget openssh-server tar vim 

COPY scripts/base.sh /home/docker/scripts/base.sh 
RUN chmod 744 /home/docker/scripts/base.sh 
ENTRYPOINT /home/docker/scripts/base.sh 

мой base.sh скрипт

#!/usr/bin/env bash 

# Set non-interactive mode 
#export DEBIAN_FRONTEND=noninteractive 

# Update the box 
apt-get -y update 
apt-get -y install linux-headers-$(uname -r) build-essential 
apt-get -y install zlib1g-dev libssl-dev libreadline-gplv2-dev 
apt-get -y install curl unzip 
apt-get -y install software-properties-common 
apt-get -y install gnupg2 

# others tools 
sudo apt-get -y install nano 
sudo apt-get -y install vim 
sudo apt-get -y install aptitude 
sudo apt-get -y install git 
sudo apt-get -y install openjdk-8-jre 
sudo apt-get -y install whois 
sudo apt-get -y install dos2unix 
+0

Вы действительно хотите, чтобы это также было «ENTRYPOINT»? Как начать изображение? – schmunk

+0

Я не хочу ENTRYPOINT Я просто хочу, чтобы мое изображение было написано сценарием. Я начинаю свое изображение с запуска докеров. – darkomen

+0

Хммм, я запустил ваш код, и он сработал. Но я бы переключил «ENTRYPOINT» на «RUN», чтобы действительно создать изображение, а не запускать установку для каждого запуска docker - вы также можете проверить, перезаписываете ли вы существующую точку входа. Пространства, как в ответе ВладоДемкака, также могут быть проблемой. – schmunk

ответ

1

проверка ли /home/docker/scripts/base.sh EOL в UNIX/OSX Format, если вы не можете сделать EOL Преобразование в Notepad ++

  • открыть файл в Notepad++ -> Edit -> EOL Conversion -> UNIX/OSX Format -> Save

  • затем восстановить Docker изображение

Если вы хотите, чтобы попасть в контейнер десять перспективе следующие:

docker ps -a

и использовать идентификатор контейнера docker exec -i -t [containerID] bash

и проверьте файл /home/docker/scripts/base.sh is

+0

Я подтверждаю, что сборка докеров работает правильно, но я не понимаю, зачем запускается запуск docker моего скрипта и код завершения 0 без контейнера запуска. – darkomen

+0

Это потому, что докер просто выполнил 'base.sh' (сервис ENTRYPOINT) с вашими установками и вышел. Ничего больше. Вам нужно запустить bash на «переднем плане» или что-то еще (просто не в режиме deamon), чтобы сохранить контейнер докера. – VladoDemcak

+0

@ darkomen Проблема «Нет такого файла или каталога» с EOL? – VladoDemcak

Смежные вопросы