Dockerfile连接到ODBC(例如HPE Vertica)安装程序

我有一个简单的GO程序,可以在我的Ubuntu服务器上成功连接到Vertica。 我在这个Ubuntu中设置了.dobc.iniodbc drvier

db, err := sql.Open("odbc", "DSN=HPVerticaDSN") if err != nil { log.Fatal(err) } log.Println("DB ping started...") if err = db.Ping(); err != nil { log.Fatalf("DB ping failed with error...%v", err) } log.Println("DB connected.") defer db.Close() 

现在,我如何设置DockerfileDocker容器中运行这个。 是否有可能使用像阿尔卑斯山这样重量轻的基础图像,或者我们必须使用ubuntu的基础图像。 任何例子将不胜感激。

这是我的Dockerfile

 FROM alpine:latest MAINTAINER Prataksha Gurung <prataksha.gurung@mydomain.net> RUN apk add --no-cache ca-certificates ADD libverticaodbc.so /libverticaodbc.so ADD .odbc.ini ~/.odbc.ini ADD main /usr/bin/main ENTRYPOINT ["main"] 

我越来越

 panic: standard_init_linux.go:178: exec user process caused "no such file or directory" [recovered] panic: standard_init_linux.go:178: exec user process caused "no such file or directory" 

当我运行这个容器。

最后我pipe理它与这个dockerfile一起工作:

 FROM ubuntu:artful MAINTAINER Prataksha Gurung <prataksha.gurung@mydomain.net> RUN apt-get update RUN apt-get install -y curl #downloading the relevant linux driver for this docker environment RUN curl -O https://my.vertica.com/client_drivers/8.1.x/8.1.1-0/vertica-client-8.1.1-0.x86_64.tar.gz RUN ls -la RUN tar vzxf vertica-client-8.1.1-0.x86_64.tar.gz && rm vertica-client-8.1.1-0.x86_64.tar.gz RUN apt-get install -y unixodbc-dev ADD .odbc.ini /root/.odbc.ini #-->your custom DSN setup ADD vertica.ini /root/vertica.ini #-->extra odbc driver setup ADD main /usr/bin/main #-->binary executable ENTRYPOINT ["main"]