2014-12-04 157 views
2

我刚在我的Express应用程序中加入了一个Redis Store,并使其运行正常。在Travis CI上运行Redis

我想将此Redis商店包含在Travis CI中,以便我的代码在该处继续工作。我在Travis文档中读到,可以使用出厂设置启动Redis。

在我的项目中,我没有使用出厂设置,我写了我自己的redis.conf文件,它指定了端口和密码。

所以我添加下面一行到我.travis.yml文件:

services: 
    - redis-server --port 6380 --requirepass 'secret' 

但这返回上特拉维斯CI如下:

$ sudo service redis-server\ --port\ 6380\ --requirepass\ \'secret\' start 
    redis-server --port 6380 --requirepass 'secret': unrecognized service 

有什么办法解决这一问题?

回答

2

如果您想自定义的特拉维斯CI Redis的选择,我建议不使用服务部分,而做到这一点:

before_script: sudo redis-server /etc/redis/redis.conf --port 6380 --requirepass 'secret'

服务部分运行服务使用自己的init /新贵的脚本,它们可能不支持你在那里添加的选项。由于安全原因,该命令也被转义,因此文档仅暗示您可以列出该部分中的正常服务名称。

+7

在新的基于容器的基础架构上做同样的事情吗? – 2015-08-03 13:29:14

+0

我是否需要自己背景这个过程?它看起来像我的Travis测试挂着'准备好接受连接'吗?不知道发生了什么... – dwanderson 2018-03-02 00:32:10

+0

(编辑评论太晚了) - 背景它做了伎俩。又名'sudo redis-server [...]&' – dwanderson 2018-03-02 00:48:08