2017-07-19 151 views
0

我有一个简单的GO程序,它在我的ubuntu服务器中成功连接到Vertica。我已经安装了.dobc.iniodbc drvier在这个Ubuntu的。Dockerfile连接到ODBC(例如HPE Vertica)设置

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() 

现在,我如何设置的Dockerfile在泊坞窗容器中运行这个。是否可以使用像高山或我们必须使用ubuntu基础图像重量轻的基础图像。任何例子将不胜感激。

这里是我的Dockerfile

FROM alpine:latest 
MAINTAINER Prataksha Gurung <[email protected]> 
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" 

当我运行这个容器。

回答

0

最后我设法将其与该dockerfile工作:

FROM ubuntu:artful 
MAINTAINER Prataksha Gurung <[email protected]> 
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"]