Omnidb成功运行Oracle的Dockerfile

主要解决Omnidb运行Oracle时缺少依赖和中文显示为问号的问题。
参考:https://github.com/OmniDB/OmniDB/blob/master/Dockerfile

FROM debian:stable-slim

ENV OMNIDB_VERSION=2.17.0
ENV SERVICE_USER=omnidb

WORKDIR /${SERVICE_USER}

#因为生产环境网络很慢,所以先准备好这两个文件,直接拷贝进去(自行下载)
COPY ./omnidb-server_2.17.0-debian-amd64.deb /
ADD ./instantclient_12_1.tar /opt/oracle/

#替换debian的源
RUN  sed -i 's@deb.debian.org/debian@mirrors.163.com/debian/@g' /etc/apt/sources.list
RUN  sed -i 's@security.debian.org/debian-security@mirrors.163.com/debian-security@g' /etc/apt/sources.list

RUN  adduser --system --home /${SERVICE_USER} --no-create-home ${SERVICE_USER} \
  && mkdir -p /${SERVICE_USER} \
  && chown -R ${SERVICE_USER}.root /${SERVICE_USER} \
  && chmod -R g+w /${SERVICE_USER} \
  && apt-get update \
  && apt-get -y upgrade \
  && apt-get install -y libc6 \ #运行Oracle需要安装的libnsl包,包含在libc6包里面
  && apt-get install -y wget dumb-init \
  && if [ ! -e '/bin/systemctl' ]; then ln -s /bin/echo /bin/systemctl; fi \
  && rm -rf /var/lib/apt/lists/*

RUN dpkg -i /omnidb-server_${OMNIDB_VERSION}-debian-amd64.deb \
  && rm -rf /omnidb-server_${OMNIDB_VERSION}-debian-amd64.deb

#设置依赖包路径
ENV  LD_LIBRARY_PATH /opt/oracle/instantclient_12_1:$LD_LIBRARY_PATH
#设置语言
ENV  NLS_LANG=AMERICAN_AMERICA.ZHS16GBK

USER ${SERVICE_USER}
  
EXPOSE 8000
EXPOSE 25482

ENTRYPOINT [ "/usr/bin/dumb-init", "--" ]
CMD ["omnidb-server", "-H", "0.0.0.0"]

构建镜像

docker build -t omnidb:2.17.0 .

保存镜像

docker save -o image_omnidb.tar omnidb:2.17.0

加载镜像

提前准备好omnidb-server_2.17.0-debian-amd64.deb和instantclient_12_1.tar

docker load -i image_omnidb.tar

运行容器

docker run -it --rm -p 0.0.0.0:8001:8000 -p 0.0.0.0:25482:25482 omnidb:2.17.0
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值