2016-10-07 39 views
1

我想構建一個基於腳本bash的docker鏡像以供應我的系統。在Docker上從windows系統啓動基本bash腳本

我嘗試建立自己的形象和搬運工人告訴我「成功構建了」但是當我嘗試推出這個我可以看到這條消息:「沒有這樣的文件或目錄」,我無法在觀看集裝箱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腳本/home/docker/scripts/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

我真的不想進入我只是想用腳本配置我的圖像。我用碼頭運行開始我的形象。 – darkomen

+0

嗯,我運行你的代碼,它的工作。但是我會用'RUN'切換'ENTRYPOINT'來真正構建圖像,而不是爲每個'docker run'運行安裝 - 您也可以檢查是否覆蓋現有的入口點。像VladoDemcak的答案那樣的空間也可能是一個問題。 – schmunk

回答

1

檢查是否有EOL作爲UNIX/OSX格式,如果不是你可以在記事本做EOL轉換++

  • Notepad++ -> Edit -> EOL Conversion -> UNIX/OSX Format -> Save

  • 打開文件然後重建泊塢窗圖像

如果你想進入容器10運行如下:

docker ps -a

,並使用容器ID docker exec -i -t [containerID] bash

並檢查文件是否爲/home/docker/scripts/base.sh存在

+0

我確認碼頭構建正確運行,但我不明白爲什麼碼頭運行啓動我的腳本並退出代碼0沒有啓動容器。 – darkomen

+0

這是因爲docker剛剛執行了'base.sh'(ENTRYPOINT服務)並且退出了安裝。沒有其他的。你需要在「foreground」或其他地方運行bash(只是不要在deamon模式下)來保持docker容器的運行。 – VladoDemcak

+0

@darkomen問題「沒有這樣的文件或目錄」與EOL? – VladoDemcak