小编jir*_*463的帖子

如何使用NodeJ缩小Docker镜像的大小

我通过angular-cli创建了新的Angular2应用程序并在Docker中运行它.

起初我在我的本地机器上启动app:

ng new project && cd project &&  "put my Dockerfile there" && docker build -t my-ui && docker run.
Run Code Online (Sandbox Code Playgroud)

我的Dockerfile

FROM node

RUN npm install -g angular-cli@v1.0.0-beta.24 && npm cache clean && rm -rf ~/.npm

RUN mkdir -p /opt/client-ui/src
WORKDIR /opt/client-ui  

COPY package.json /opt/client-ui/
COPY angular-cli.json /opt/client-ui/
COPY tslint.json /opt/client-ui/

ADD src/ /opt/client-ui/src

RUN npm install
RUN ng build --prod --aot

EXPOSE 4200

ENV PATH="$PATH:/usr/local/bin/"    
CMD ["npm", "start"]
Run Code Online (Sandbox Code Playgroud)

一切都还可以,问题是图片大小:939MB !!! 我尝试使用FROM:ubuntu:16.04并在其上安装NodeJ(它可以工作),但我的图像仍然有~450 MB.我知道节点:高山存在,但我无法在其中安装angular-cli.

如何缩小图像尺寸?是否有必要在Dockerfile中运行"npm install"和"ng build"?我希望在localhost上构建应用程序并将其复制到映像.我试图复制dist dir和package.json等文件,但它不起作用(应用程序启动失败).谢谢.

node.js docker dockerfile angular

11
推荐指数
1
解决办法
1465
查看次数

旧的LinkedIn REST API文档在哪里?

我使用的是LinkedIn REST API.Everithing还可以,但现在我需要改进app,我找不到合适的文档.它在哪里?实际文件完全不合适.我想要文档,其中所有字段将被清楚地描述等.特别是我需要GROUPS的文档,但我不能谷歌它.它在哪里?谢谢.

rest linkedin

7
推荐指数
1
解决办法
4781
查看次数

具有Angular2应用程序和NodeJs的Docker容器没有响应

我通过angular-cli创建了新的Angular2应用程序并在Docker中运行它.但我无法从localhost连接它.

起初我在我的本地机器上启动app:

ng new project && cd project &&  "put my Dockerfile there" && docker build -t my-ui .
Run Code Online (Sandbox Code Playgroud)

我按命令启动它:

docker run -p 4200:4200 my-ui
Run Code Online (Sandbox Code Playgroud)

然后尝试我的localhost:

curl localhost:4200
Run Code Online (Sandbox Code Playgroud)

并收到

curl:(56)Recv failure:由peer重置连接

然后,我尝试切换到运行容器(docker exec -ti container-id bash)并运行curl localhost:4200并且它可以工作.

我还尝试使用--net = host param运行容器:

docker run --net=host -p 4200:4200 my-ui
Run Code Online (Sandbox Code Playgroud)

它有效.问题是什么?我也尝试在守护进程模式下运行容器,但它没有帮助.谢谢.

我的Dockerfile

FROM node

RUN npm install -g angular-cli@v1.0.0-beta.24 && npm cache clean && rm -rf ~/.npm

RUN mkdir -p /opt/client-ui/src
WORKDIR /opt/client-ui  

COPY package.json /opt/client-ui/
COPY angular-cli.json /opt/client-ui/
COPY tslint.json …
Run Code Online (Sandbox Code Playgroud)

node.js docker angular

7
推荐指数
1
解决办法
1111
查看次数

ELK处理来自多个泊坞窗图像的多行日志

我正在运行docker容器的集群中运行ELK(Elasticsearch,Logstash,Kibana).这些容器通过GELF端点将日志发送到Logstash.

docker run  --log-driver=gelf --log-opt gelf-address=udp://somehost:12201 -ti    my-app:latest 
Run Code Online (Sandbox Code Playgroud)

然后我在Logstash中处理日志.在这里,我想折叠多行消息并将它们合并为一个单独的事件(在我的例子中是Java异常).我的配置是:

input {
    gelf {} 
}
filter{
    multiline {
      pattern => "^%{TIMESTAMP_ISO8601}"
      negate => true
      what => "previous"
      source => "short_message"
      }
}
output {
    stdout { codec => rubydebug }
}
Run Code Online (Sandbox Code Playgroud)

当我从一个docker容器处理日志时,它工作得很好,但是对于两个或更多个,它不起作用,因为它会折叠两个(或更多)日志流的消息.

我希望,在输入中设置多线程可以解决问题

input {
    gelf {
      filter{
         multiline {
            pattern => "^%{TIMESTAMP_ISO8601}"
            negate => true
            what => "previous"
         }
     }
}
Run Code Online (Sandbox Code Playgroud)

但多线程无法正常使用此设置(似乎是因为bug).有什么建议?谢谢.

我正在使用:Docker 1.9.1,Logstash 2.1

logstash docker elastic-stack

5
推荐指数
1
解决办法
3371
查看次数

如何通过kubernetes pod传递docker run参数

嗨我正在运行kubernetes集群,我运行Logstash容器.

但我需要使用自己的docker run参数运行它.如果我直接在docker中运行它.我会用命令:

docker run --log-driver=gelf logstash -f /config-dir/logstash.conf
Run Code Online (Sandbox Code Playgroud)

但我需要通过Kubernetes pod运行它.我的pod看起来像:

spec:
      containers:
      - name: logstash-logging
        image: "logstash:latest"
        command: ["logstash", "-f" , "/config-dir/logstash.conf"]
        volumeMounts:
          - name: configs
            mountPath: /config-dir/logstash.conf
Run Code Online (Sandbox Code Playgroud)

如何使用参数--log-driver = gelf通过kubernetes来运行Docker容器.谢谢.

docker kubernetes

3
推荐指数
1
解决办法
3484
查看次数