在Dockerfile中下载git存储库

在Dockerfile中下载git存储库,docker,continuous-integration,Docker,Continuous Integration,每当我提交到GitHub存储库时,我都会使用docker.com自动构建。看 我想对docker映像中的所有文件调用luacheck,如果出现警告,就让它失败 我故意添加了一个Lua错误,并在Dockerfile中添加了以下行: 见: 但它失败了 /bin/sh: 1: cd: can't cd to /gluon 甚至在使用git存储库之前,您必须首先为gluon用户创建目录,并授予其写权限,包括: FROM ubuntu RUN useradd -d /gluon gluon RUN ap

每当我提交到GitHub存储库时,我都会使用docker.com自动构建。看

我想对docker映像中的所有文件调用luacheck,如果出现警告,就让它失败

我故意添加了一个Lua错误,并在Dockerfile中添加了以下行:

见:

但它失败了

/bin/sh: 1: cd: can't cd to /gluon

甚至在使用git存储库之前,您必须首先为gluon用户创建目录,并授予其写权限,包括:

FROM ubuntu
RUN useradd -d /gluon gluon
RUN apt-get update && apt-get install -y git
RUN mkdir /gluon
RUN chown -R gluon:gluon /gluon
USER gluon
RUN cd /gluon
RUN git clone https://github.com/rubo77/gluon/ gluon
RUN cd gluon

VOLUME /gluon
WORKDIR /gluon
RUN git checkout docker
RUN cp -a docs/site-example/ site
RUN luacheck .; if [ $? -gt 0 ]; then exit 1; fi

这是可行的,但奇怪的是,如果我再添加一行RUN ls site,我就无法列出site文件夹-请看我找到了原因:docker仅在上次发生更改时再次执行RUN命令。如果没有任何更改,则忽略run命令,只获取该行的结果。解决方法是将所有内容放在一行中,用分号分隔
FROM ubuntu
RUN useradd -d /gluon gluon
RUN apt-get update && apt-get install -y git
RUN mkdir /gluon
RUN chown -R gluon:gluon /gluon
USER gluon
RUN cd /gluon
RUN git clone https://github.com/rubo77/gluon/ gluon
RUN cd gluon

VOLUME /gluon
WORKDIR /gluon
RUN git checkout docker
RUN cp -a docs/site-example/ site
RUN luacheck .; if [ $? -gt 0 ]; then exit 1; fi