docker compose配置(centos + redis)

docker compose配置 centos + redis

使用docker compose镜像上安装centos + redis,且docker compose up后,redis server启动.

dockerfile如下:

FROM centos:latest

RUN cd /etc/yum.repos.d/  && yum install -y wget && wget http://mirrors.aliyun.com/repo/Centos-8.repo && \
    yum clean all && mv Centos-8.repo CentOS-Base.repo && yum makecache && yum update  -y

RUN yum install -y gcc && yum install -y gcc-c++
    

RUN yum install -y make && \
    wget https://download.redis.io/releases/redis-6.0.9.tar.gz && \
    mkdir -p /usr/src/redis && \
    tar -xzf redis-6.0.9.tar.gz -C /usr/src/redis --strip-components=1 

RUN cd /usr/src/redis && make 
RUN cd /usr/src/redis/src && make install PREFIX=/usr/src
RUN cp /usr/src/redis/redis.conf /usr/src/bin


CMD ["/bin/sh", "-c", "./redis-server"]

注意其中的几个问题:
redis的make install 必须进入src目录,否则不会报错,但是无法安装到指定目录
安装包的时候必须 yum install -y ,否则build中无法选择N/Y项继续安装,会失败
RUN在初次调试阶段可以分RUN构建,方便明确在RUN的那个步骤报错了,且每次会从缓存中出错的下一步执行,而不会每次都执行所有命令

docker compose

version: "3.8"

services:
  centos:
    build: 
      context: .
      dockerfile: Dockerfile
    image: redis-server
    working_dir: /usr/src/bin
    command: /bin/sh -c "./redis-server ./redis.conf"  
    ports:
      - 6379:6379
    volumes:
      - ./redis/redis.conf:/usr/src/bin/redis.conf
      - ./data:/usr/src/bin/data

注意添加working_dir是为了执行redis-server命令,否则即使全路径也会报错redis-server找不到
注意!! docker compose的CMD启动陷阱,在初步调试启动阶段直接使用docker-compose up 启动服务,不要使用-d,否则command 执行报错无法输出在当前的标准输出上,即使command执行失败也不会暴露出来(这时候会出现莫名奇妙的你以为docker compose up -d启动了服务,但实际上没有启动)

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值