我有一个简单的 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"
当我运行这个容器时。
答案 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"]