私信  •  关注

Adiii

Adiii 最近创建的主题
Adiii 最近回复了

这是因为重写了 $PATH 变量,因此容器找不到可执行文件。

默认路径值为

/usr/local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin

/salmon/ 然后可以使用完整路径调用python,如 /usr/local/bin/python ,顺便说一下,不应该像这样更新路径变量。

FROM python:2.7 
ENV PATH="/salmon/:${PATH}"
.
.
5 年前
回复了 Adiii 创建的主题 » 角度应用程序未从docker-compose.yml文件运行

您没有覆盖Dockerfile中的Nginx配置,因此端口的实际问题是,Nginx默认监听 PORT 80

EXPOSE 80

作为Nginx默认监听端口 80 4100 就像你期待的Nginx的角度发球等。

所以最好用曝光 80个 这将增加可读性,@David提到,如果设置network_mode:host,则不会有任何效果。

打开浏览器 80个 它应该能起作用。

或者可以绑定所需的端口,而不必在docker compose中提到主机网络

    ports:
      - 4200:80 

http://localhost/

是的,这是一个可能的,也是不同的方式,并将建议使用AWS服务。

  • Host-based 每个应用的路由和不同端口发布

  • Nginx公司

使用AWS方法,您需要使用ECS运行容器。

  • 创建负载平衡器
  • 创建服务
  • 将服务附加到负载平衡器并将负载平衡器路由更新到基于主机的路由 app1.example.com app1

对app2重复上述步骤。

你可以读到更多关于这个的东西 gentle-introduction-to-how-aws-ecs-works-with-example-tutorial Run containerized applications in production

有了Nginx,你需要为自己管理一切。

  • 在EC2上运行两个容器
  • 安装Nginx
  • 更新DNS条目并将指向EC2实例公共IP,例如,两个DNS, app1.example.com网站 app2.example.com 将指向同一个EC2实例,但Nginx将决定哪个应用程序将提供请求。
server {
  server_name app1.example.com;
  location / {
    proxy_pass http://127.0.0.1:HOSTPORT;
  }
}
server {
  server_name app2.example.com;
  location / {
    proxy_pass http://127.0.0.1:HOSTPORT;
  }
}

我将推荐这两种方法,Nginx优于apache,但是如果您感兴趣,可以检查一下 apache-vhosts

5 年前
回复了 Adiii 创建的主题 » 如何在AWS中使用elasticsearch或Kibana控制台

我假设你在寻找弹性搜索服务的端点,

  1. https://us-west-2.console.aws.amazon.com/es/home?region=us-west-2#
  2. 选择域

enter image description here

  1. 选择ES域

enter image description here

如果你没有域名

enter image description here

enter image description here

5 年前
回复了 Adiii 创建的主题 » 在Dockerfile中安装Numpy需求。导致错误

从错误日志来看,它似乎不是来自numpy。但是您可以在requirement.txt之前安装numpy并验证它是否正常工作。

FROM python:3.6
RUN pip install numpy==1.14.3

建造

docker build -t numpy .

运行和测试

docker run numpy bash -c "echo import numpy as np > test.py ; python test.py"

所以在导入时不会出现错误。

或者你可以试试 numpy 作为一个高山包

FROM python:3-alpine3.9
RUN apk add --no-cache py3-numpy

或者发布requirement.txt。

5 年前
回复了 Adiii 创建的主题 » 如何连接到macos并从docker镜像执行脚本

为什么需要在容器和主机之间运行脚本?不建议这么做,但你可以试试下面的。

在Jenkins服务器上创建dockerfile并构建它,标记它 ubuntu:latest 所以它将使用新创建的Jenkins而不是旧的Jenkins,或者在 OpenSSH-client .

FROM ubuntu:latest

RUN apt-get -y install openssh-client

然后

docker build -t ubuntu:latest

然后去做你想要的工作。

如何将该图像传递到pipeline.yml文件

只需更改图像名称 ubuntu 以防在生成时使用不同的映像名称。

5 年前
回复了 Adiii 创建的主题 » 如何在Docker窗口中查看文件结构?

我认为您需要使用powershell,因为容器是基于窗口的,而不是linux。

docker exec -it <container id> powershell
6 年前
回复了 Adiii 创建的主题 » 如何将run<image>参数传递给dockerfile使用?

你可以有更好的选择,而不是把这些传递给DOCKER CMD。 我想这就是你想要的,用env创建

FROM alpine:3.7
ARG VAR1=initialValue
RUN mkdir $VAR1

ENV VAR2=goodValue
RUN mkdir $VAR2
COPY docker-entrypoint.sh /usr/local/bin/
RUN chmod 777 /usr/local/bin/docker-entrypoint.sh \
    && ln -s /usr/local/bin/docker-entrypoint.sh /
RUN chmod +x /usr/local/bin/docker-entrypoint.sh
ENTRYPOINT ["docker-entrypoint.sh"]
CMD ["/bin/ash"]

在Docker的入口点建立目录

#!/bin/ash
set -e

if [ "$1" = '/bin/ash' ]; then
    echo "container booting..."
    echo "creating directory having name $VAR2"
    mkdir -p $VAR2
fi

exec "$@"

enter image description here