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

标签 ubuntu docker go dockerfile vertica

我有一个简单的 GO 程序可以成功连接到我的 ubuntu 服务器中的 Vertica。我已经在这个 ubuntu 中设置了 .dobc.iniodbc 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/

相关文章:

Ubuntu 中 Eclipse/SWT 中的 Java XULRunner 错误

git - 在 Laravel 5 应用程序中,环境特定的值应该保存在哪里?

go - 接口(interface)指针的奇怪行为

go - 如何将 zlib 包装在 golang 中?

使用代理的 PHP Curl http 请求有 95% 的时间失败,为什么?

php - 使用扩展 webp 让 imagick 与 docker 一起工作

c# - 我应该安装哪些库才能在基于Alpine的图像中的ASP NET Core应用程序中使用System.Drawing.Common

go - Go 云中的状态是如何处理的?

php - 在/usr 下找不到 libmysqlclient。在 Ubuntu 12.4 上从源代码构建 PHP 5.2

docker - 如何使用 docker 容器名称而不是 IP 与 knex 进行数据库连接