所以..在Jenkins执行器中运行docker-compose run test
是可行的。不会从Jenkins UI(立即构建,或触发另一个构建的实际代码更改)中运行它。
16:37:18 Cannot start service test: OCI runtime create failed:
container_linux.go:348: starting container process caused "exec:
\"./script/docker-entrypoint.sh\": stat ./script/docker-entrypoint.sh:
no such file or directory": unknown
我已经尝试将脚本从script/
文件夹移出到根目录,并尝试在ADD . /app
之后使用ADD script/entrypoint.sh /app/script/entrypoint.sh
手动添加脚本,还尝试重新启动docker daemon,Jenkins机器,和东西。
我似乎无法让我的形象从詹金斯身上走下来。它使用docker-compose run test
在本地运行,可以使用相同的命令在Jenkins执行程序的终端上运行,但不能通过常规管道运行。
这是我的Dockerfile
FROM ruby:2.2.2
RUN mkdir -p /app
# install Ruby dependencies
ADD Gemfile /app
ADD Gemfile.lock /app
RUN cd /app && \
bundle config github.com ${GITHUB_USERNAME}:${GITHUB_TOKEN} && \
BUNDLE_GEMFILE=Gemfile bundle install
ADD . /app
# rails server, elasticsearch, and webpack ports
EXPOSE 3000
WORKDIR /app
ENTRYPOINT [ "./script/docker-entrypoint.sh" ]
CMD [ "script/server" ]
这是我的入口点脚本:
#!/bin/sh
set -ex
if [ -f tmp/pids/server.pid ]; then
rm tmp/pids/server.pid
fi
exec "$@"
最后但并非最不重要的一点是,我正在尝试构建/运行的test
服务:
test:
build:
context: .
args:
GITHUB_USERNAME: ${GITHUB_USERNAME}
GITHUB_TOKEN: ${GITHUB_TOKEN}
tty: true
stdin_open: true
command: ./script/test -n 4
environment:
RAILS_ENV: test
volumes:
- .:/app
在此我将不胜感激,因为我不知道如何使图像在Jenkins中正常运行。