我有一个简单的 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"
当我运行这个容器时。
最佳答案
最后我设法让它与这个 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 DNS setup
ADD vertica.ini /root/vertica.ini #-->extra odbc driver setup
ADD main /usr/bin/main #-->binary executable
ENTRYPOINT ["main"]
关于ubuntu - Dockerfile 连接到 ODBC(例如 HPE Vertica)设置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45189777/