Dockerfile连接到ODBC(例如HPE 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容器中运行这个。 是否有可能使用像阿尔卑斯山这样重量轻的基础图像,或者我们必须使用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"
当我运行这个容器。
最后我pipe理它与这个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"]