2017-07-19 154 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"]