2017-06-14 168 views
1

我有一个docker-compose文件,我将nginx和一个节点js应用程序结合在一起。当整件事情开始时,我需要运行shell命令sudo sysctl -w net.core.somaxconn=65536,但我找不到一个清晰的例子来说明如何去做。docker撰写运行bash命令开始

这是我节点应用dockerfile:

FROM node:6.9.0 

ADD . /myapi 
WORKDIR /myapi 

RUN npm install 

EXPOSE 1337 

ENTRYPOINT ["node"] 
CMD ["./index.js"] 

这是我的nginx的dockerfile:

FROM nginx 
MAINTAINER me 
COPY nginx.conf /etc/nginx/nginx.conf 

COPY ssl-certificates/ServerCertificate.cer /var/www/ssl/ServerCertificate.cer 
COPY ssl-certificates/SSLPrivateKey.key /var/www/ssl/SSLPrivateKey.key 

这是我的搬运工撰写:

version: "3" 

services: 
    api: 
     image: myregistry/my-api:1.033 
    build: ./api 
    ports: 
     - "1337" 
    environment: 
     NODE_ENV: qa 
    deploy: 
     replicas: 12 
    networks: 
     - api-network 
proxy: 
    image: myregistry/my-api-proxy:1.033 
    build: 
     context: ./nginx 
     args: 
      RUNNING_MODE: prod 
    ulimits: 
     nproc: 65535 
     nofile: 
      soft: 10240 
      hard: 20480 
    ports: 
     - "80:80" 
     - "443:443" 
    links: 
     - api 
    deploy: 
     replicas: 3 
    networks: 
     - api-network 

networks: 
    api-network: 
     driver: overlay 

一个明显的例子将是非常感谢,谢谢。

回答

0

嘿,你可以按照以下使用ENTRYPOINT

FROM node:6.9.0 

ADD . /myapi 
WORKDIR /myapi 

RUN npm install 

EXPOSE 1337 

ENTRYPOINT "/bin/node index.js" && "sudo sysctl -w net.core.somaxconn=65536"