C语言Docker基础镜像的搭建

在一个C语言项目中,根据项目要求需要Docker环境下运行,项目中涉及到了libevent、oralce、redis、kafka等组件,为了便于开发和后期的维护,搭建了包含以上组件的Docker基础镜像,以下供大家参考。

一、Oracle客户端的Dockerfile

FROM centos:7
# from https://github.com/grenadejumper/docker-oracle-client
# docker build -f Dockerfile -t haoxin/oracleclient .
#  docker run -it --name oracleclient haoxin/oracleclient 
# sqlplus  username/pass@192.168.0.66/oratstsrv
MAINTAINER ls@haoxin.cn
    
RUN mkdir -p /tmp 

COPY ./rpms/ /tmp 

RUN yum install -y libaio glibc && \
    yum -y localinstall /tmp/oracle* --nogpgcheck && \
    mkdir /usr/lib/oracle/12.2/client/network/admin -p &&\
    yum clean all -y 
    
COPY ./tnsnames.ora /usr/lib/oracle/12.2/client64/network/admin/tnsnames.ora

ENV ORACLE_HOME=/usr/lib/oracle/12.2/client64
ENV PATH=$PATH:$ORACLE_HOME/bin
ENV LD_LIBRARY_PATH=$ORACLE_HOME/lib
ENV TNS_ADMIN=$ORACLE_HOME/network/admin
ENV NLS_LANG=american_america.AL32UTF8
#ENV OCI_LIB=$ORACLE_HOME/lib

ENTRYPOINT ["/bin/bash"]

二、包含各组件的Dockerfile

FROM haoxin/oracleclient
MAINTAINER ls@haoxin.cn
#https://github.com/quozd/docker-centos7-python36/blob/master/Dockerfile
# docker build -f Dockerfile -t haoxin/cenv .
#docker run -it --name cenv haoxin/cenv

ENV OCILIB_VERSION=4.5.2 \
    LIBEVENT_VERSION=2.1.8 \
    LIBRDKAFKA_VERSION=1.0.0-RC2 \
    HIREDISVIP_VERSION=0.3.0 \
    INSTALL_PKGS="wget gcc gcc-c++ make zlib-devel openssl-devel " \
    PATH="/usr/local/bin:${PATH}"

RUN yum install -y $INSTALL_PKGS && \
    yum clean all -y

#ocilib    
RUN wget https://github.com/vrogier/ocilib/releases/download/v${OCILIB_VERSION}/ocilib-${OCILIB_VERSION}-gnu.tar.gz \
    && tar xvf ocilib-${OCILIB_VERSION}-gnu.tar.gz \
    && cd  ocilib-${OCILIB_VERSION} \
    && ./configure  --with-oracle-headers-path=/usr/include/oracle/12.2/client64/  \
    && make \
    && make install \
    && echo "/usr/local/lib" > /etc/ld.so.conf.d/ocilib.conf \
    && ldconfig \
    && cd / \
    && rm -rf ocilib-${OCILIB_VERSION}* 

#libevent
RUN wget https://github.com/libevent/libevent/releases/download/release-${LIBEVENT_VERSION}-stable/libevent-${LIBEVENT_VERSION}-stable.tar.gz \
    && tar xvf libevent-${LIBEVENT_VERSION}-stable.tar.gz \
    && cd  libevent-${LIBEVENT_VERSION}-stable \
    && ./configure --prefix=/usr \
    && make \
    && make install \
    && cd / \
    && rm -rf libevent-${LIBEVENT_VERSION}* 

#librdkafka
#https://github.com/edenhill/librdkafka/archive/v1.0.0-RC2.tar.gz
RUN wget https://github.com/edenhill/librdkafka/archive/v${LIBRDKAFKA_VERSION}.tar.gz \
    && tar xvf v${LIBRDKAFKA_VERSION}.tar.gz \
    && cd  librdkafka-${LIBRDKAFKA_VERSION} \
    && ./configure  \
    && make \
    && make install \
    && cd / \
    && rm -rf librdkafka-${LIBRDKAFKA_VERSION}  v${LIBRDKAFKA_VERSION}.tar.gz

#https://github.com/vipshop/hiredis-vip/archive/0.3.0.tar.gz
RUN wget https://github.com/vipshop/hiredis-vip/archive/${HIREDISVIP_VERSION}.tar.gz \
    && tar xvf ${HIREDISVIP_VERSION}.tar.gz \
    && cd  hiredis-vip-${HIREDISVIP_VERSION} \
    && make \
    && make install \
    && cd / \
    && rm -rf  hiredis-vip-${HIREDISVIP_VERSION}  ${HIREDISVIP_VERSION}.tar.gz

ENV LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/lib/:/usr/local/lib    
    
ENTRYPOINT ["/bin/bash"]
 

  • 28
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值