安装sql relay失败

时间:2016-10-14 07:22:30

标签: sql linux docker installation

我刚刚创建了一个docker容器,并尝试在其中安装SQL Relay。

我已检查先决条件here并遵循安装文档here

但是,在sqlrelay的public List<Object> createObjectsFromJsonFile(Class<?> objectToCreate) { gson = new GsonBuilder().create(); return gson.fromJson(reader, /*<appropriate type array from objectToCreate>*/); } 末尾,我看到了这样的错误:

make install

我的安装可能出现什么问题?

这是我用来开始安装的docker文件:

update-rc.d: /etc/init.d/sqlrelay: file does not exist
update-rc.d: /etc/init.d/sqlrcachemanager: file does not exist
make[1]: *** [install] Error 1
make[1]: Leaving directory `/sqlrelay-0.66.0/init'
make: *** [install-init] Error 2

以下是sqlrelay-0.66.0文件夹中FROM ubuntu:trusty RUN apt-get update && \ apt-get install libxml2-dev libpcre3 libpcre3-dev libmysqld-dev -y RUN apt-get install mysql-server libmysqlclient-dev -y # sql relay prerequisites RUN apt-get install g++ make perl php5-dev python-dev ruby-dev \ tcl-dev openjdk-7-jdk erlang-dev nodejs-dev node-gyp mono-devel \ libmariadbclient-dev libpq-dev firebird-dev libfbclient2 libsqlite3-dev \ unixodbc-dev freetds-dev mdbtools-dev -y COPY rudiments-0.56.0.tar.gz / COPY sqlrelay-0.66.0.tar.gz / EXPOSE 80 ./configuremake的输出:

configure_log

make_log

make_install_log

如果您需要有关我的安装过程的更多信息,请告诉我们。我可以提供它。

2 个答案:

答案 0 :(得分:0)

我认为你应该在你的行中使用ADD代替COPY,例如

COPY rudiments-0.56.0.tar.gz /

你的COPY只是复制.tar.gz,但不解包它们

与ADD一样

If the <src> parameter of ADD is an archive in a recognised compression format, it will be unpacked

这是从

中提取的

What is the difference between the `COPY` and `ADD` commands in a Dockerfile?

答案 1 :(得分:0)

我最近遇到了同样的问题。我发现的问题是init Makefile错误地检测到在Ubuntu Trusty上使用systemctl并将脚本放在那里。稍后脚本会尝试在init.d中找到脚本并失败。

解决方案是编辑Makefile:sqlrelay-X.X.X/init/Makefile

替换:

install:
    if ( test -d "/lib/systemd/system" ); \

使用:

install:    
    if ( test -d "/lib/systemd/system_x" ); \

稍后在脚本中对uninstall选项进行类似的更改,现在它将在Ubuntu上正确安装。