1
我有一個描述jenkins從站的dockerfile。在這個奴隸我需要簽出一些文件,以使我們的構建工作。要讓這個文件夾始終保持最新狀態,我打算在每次容器啓動時執行一次svn更新。但是由於某種原因它不起作用。這裏是我的Dockerfile:在Docker容器上運行svn更新腳本啓動
FROM ubuntu:16.04
...
# Arguments which can be passed via --build-arg <varname>=<value>
ARG svnPassword
ARG svnUser
...
#Install Subversion
RUN apt-get install -y subversion
# Checkout config from SVN
RUN mkdir -p /home/jenkins/workspace/config && cd /home/jenkins/workspace && svn checkout --username $svnUser --password $svnPassword http://myRepo/config
...
# Add svnUpdate.sh script
ADD svnUpdate.sh /home/svnUpdate.sh
CMD /home/svnUpdate.sh $svnUser $svnPassword
我svnUpdate.sh看起來是這樣的:
#!/bin/sh
/usr/sbin/sshd -D
cd /home/jenkins/workspace/config && svn update --username $1 --password $2
我不明白的是:當我登錄到我跑步的容器和執行
./home/svnUpdate.sh user password
它完美地工作。我需要更改哪些內容以便在容器啓動時執行腳本?
更新: 事實證明,腳本的「/ usr/sbin/sshd -D」阻止腳本繼續。
我也改變了它使用的入口點,而不是CMD的:
ENTRYPOINT ["/bin/bash", "./home/svnUpdate.sh", "$svnUser", "$svnPassword"]
現在我唯一的問題是,字符串「$ svnUser」傳遞給腳本,而不是解析值。