docker在开始时编写运行bash命令

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

这是我的节点应用程序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 

这是我的docker组成:

 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 

一个明确的例子将非常感激,谢谢。

嘿,你可以使用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"