簡體   English   中英

如何將Redis添加到Docker容器?

[英]How to add Redis to a Docker Container?

我有一個在Docker中運行良好的Sinatra應用程序:

# Image
FROM ruby:2.3.3
RUN apt-get update && \
    apt-get install -y net-tools


# Install app
ENV APP_HOME /app
ENV HOME /root
RUN mkdir $APP_HOME
WORKDIR $APP_HOME
COPY Gemfile* $APP_HOME/
RUN bundle install
COPY . $APP_HOME


# Configure App
ENV LANG en_US.UTF-8
ENV RACK_ENV production

EXPOSE 9292


# run the application
CMD ["bundle", "exec", "rackup"]

但是當我嘗試添加Redis時:

# Redis
RUN         apt-get update && apt-get install -y redis-server
EXPOSE      6379
CMD         ["/usr/bin/redis-server"]

Redis似乎沒有開始。

那么,將Redis添加到Ruby( FROM ruby:2.3.3 )Docker容器的好方法是什么?

將其拆分為兩個容器。 您可以使用docker-compose將它們放在公共網絡上。 例如,這是一個示例docker-compose.yml:

version: '2'

services:
  sinatraapp:
    image: sinatraapp:latest
    ports:
    - 9292:9292
  redis:
    image: redis:latest

以上內容可以為您的環境提供更多選項,並假設您的圖像名稱為sinatraapp:latest,將其更改為您構建的圖像。 您還需要更新sinatra應用程序,通過主機名redis而不是localhost來調用redis。 然后運行docker-compose up -d啟動兩個服務。

Dockerfile 只能有一個 CMD命令。 而且你想做的事情比你想象的要復雜一些。

PS以上是stackoverflow鏈接。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM