首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法在码头容器中启动rabbitmq-服务器,如何编写此Dokcerfile?

无法在码头容器中启动rabbitmq-服务器,如何编写此Dokcerfile?
EN

Stack Overflow用户
提问于 2017-05-02 09:13:35
回答 1查看 8.7K关注 0票数 4

无法在我的停靠容器中启动rabbitmq-server。

这是我的Dockerfile

代码语言:javascript
复制
# python official docker image, I have check that it is base on the debain jessie
# The first line of python:2.7 Dockerfile is "FROM buildpack-deps:jessie"
FROM python:2.7

# The rabbitmq-server install commands are as follow
# I am sure that if I execute those commands in a Debain Jessie Server
# The rabbitmq-server will be installed successfully and connectable
# But in the docker, it does not works
RUN echo 'deb http://www.rabbitmq.com/debian/ testing main' > /etc/apt/sources.list.d/rabbitmq.list
RUN wget -O- https://www.rabbitmq.com/rabbitmq-release-signing-key.asc | apt-key add -
RUN apt-get update && apt-get install -y --no-install-recommends rabbitmq-server && rm -rf /var/lib/apt/lists/*

RUN service rabbitmq-server restart

RUN service rabbitmq-server status

# A lot of other things about deploy my project
# A lot of other things about deploy my project
# A lot of other things about deploy my project
CMD ["xxx", "xxxx"]

下面是构建Dockerfile中的一些输出

代码语言:javascript
复制
Step 4/6 : RUN apt-get ......
...
...
Adding system user `rabbitmq' (UID 105) ...
Adding new user `rabbitmq' (UID 105) with group `rabbitmq' ...
Not creating home directory `/var/lib/rabbitmq'.
invoke-rc.d: policy-rc.d denied execution of start.
Processing triggers for systemd (215-17+deb8u6) ...
Processing triggers for libc-bin (2.19-18+deb8u7) ...
 ---> 35eb870defca
Removing intermediate container c2aa80f72a12
代码语言:javascript
复制
Step 5/6 : RUN service rabbitmq-server restart
 ---> Running in cff316499bf0
Restarting message broker: rabbitmq-server.
代码语言:javascript
复制
Step 6/6 : RUN service rabbitmq-server status
 ---> Running in 2c03f8721cf8
Status of node rabbit@607924cbbc93 ...
Error: unable to connect to node rabbit@607924cbbc93: nodedown

DIAGNOSTICS
===========

attempted to contact: [rabbit@607924cbbc93]

rabbit@607924cbbc93:
  * connected to epmd (port 4369) on 607924cbbc93
  * epmd reports: node 'rabbit' not running at all
                  no other nodes on 607924cbbc93
  * suggestion: start the node

current node details:
- node name: 'rabbitmq-cli-30@607924cbbc93'
- home dir: /var/lib/rabbitmq
- cookie hash: nK/d5I704NfDDEZdnP6xPg==

The command '/bin/sh -c service rabbitmq-server status' returned a non-zero code: 3

问题在哪里,如何解决?

我很困惑,因为安装命令是正确的,它们在debain vps中工作得很好。

但是,它们在码头集装箱中不能很好地工作。

我的目的是让我的python在这个容器中连接rabbitmq服务器,就在这个容器中。它不需要从这个容器中连接。

以下是关于这个问题的一些猜测

  1. 容器内的网络配置
  2. 请注意码头建造中的第4/6步。
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-05-02 10:10:03

因此,正如我们在评论中所讨论的,我建议你使用官方的对接图像来处理兔子。因此,您将以两个容器结束.在这种情况下: app和兔子。下面是Dockerfile和docker-Compose.yml的一个示例:

Dockerfile:

代码语言:javascript
复制
# use base python image with python 2.7
FROM python:2.7

# add requirements.txt to the image
ADD requirements.txt /app/requirements.txt

# set working directory to /app/
WORKDIR /app/

# install python dependencies
RUN apt-get update
RUN apt-get -y install libpq-dev python-dev
RUN pip install -r requirements.txt

以及docker-Compose.yml的例子:

代码语言:javascript
复制
version: '2'

services:
  # RabbitMQ
  rabbit:
    hostname: rabbit
    image: rabbitmq:3.6.1-management
    ports:
      - "5672:5672"  # we forward this port because it's useful for debugging
      - "15672:15672"  # here, we can access rabbitmq management plugin

  # App
  app:
    build:
      context: .
      dockerfile: Dockerfile
    hostname: app
    volumes:
      - .:/app  # mount current directory inside container
    ports:
      - "8000:8000"
    # set up links so that web knows about db and redis
    links:
      - rabbit

要启动新容器,请使用docker-compose build && docker-compose up -d

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43734169

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档