2017-06-14 154 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"