Dockerfile连接到ODBC(例如HPE Vertica)设置

时间:2017-07-19 11:54:39

标签: ubuntu docker go dockerfile vertica

我有一个简单的 GO 程序,可以在我的ubuntu服务器上成功连接到Vertica。我在这个ubuntu中设置了 .dobc.ini odbc 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()

现在,如何设置 Dockerfile 以在docker容器中运行它。是否可以使用像 alpine 这样的轻量级基本图像,或者我们必须使用 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"

当我运行这个容器时。

1 个答案:

答案 0 :(得分:0)

最后我设法使用这个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"]