繁体   English   中英

我应该如何在Docker容器中将Thumbed作为服务运行?

[英]How should I run thumbd as a service inside a Docker container?

我想以thumbd作为节点Docker映像内的服务运行! 目前,我只是在运行我的应用程序之前运行它,这对我没有用! 有没有一种方法可以将我的Dockerfile设置为在启动时作为init.d服务运行,而不会阻止任何其他docker命令?

我的Dockerfile如下:

FROM node:6.2.0

# Create app directory
RUN mkdir -p /usr/src/app
WORKDIR /usr/src/app

# Install app dependencies
COPY package.json /usr/src/app/
RUN npm install

# Thumbd
RUN npm install -g thumbd
RUN mkdir -p /var/log/
RUN echo "" > /var/log/thumbd.log
RUN thumbd server --aws_key=<KEY> --aws_secret=<SECRET> --sqs_queue=<QUEUE> --bucket=<BUCKET> --aws_region=us-west-1 --s3_acl=public-read

# Bundle app source
COPY . /usr/src/app

EXPOSE 8080

CMD npm run build && npm start

由于它的工作方式无需直接链接到您的应用程序,因此最可能在自己的容器中运行它是最容易的。 Docker也喜欢推每个容器一个进程的想法。

FROM node:6.2.0

# Thumbd
RUN set -uex; \
    npm install -g thumbd; \
    mkdir -p /var/log/; \
    touch /var/log/thumbd.log

CMD thumbd server --aws_key=<KEY> --aws_secret=<SECRET> --sqs_queue=<QUEUE> --bucket=<BUCKET> --aws_region=us-west-1 --s3_acl=public-read

您可以使用Docker Compose协调项目中运行的多个容器。

如果您确实想在一个容器中运行多个进程,请使用s6之类的初始化系统,或者可能使用supervisor

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM