代码之家  ›  专栏  ›  技术社区  ›  Michael H.

码头工人不工作

  •  0
  • Michael H.  · 技术社区  · 6 年前

    我有一个角度的应用程序,这是停靠。我的docker文件是:

    FROM node:8.9 as node
    WORKDIR /app
    COPY package.json /app/
    
    RUN npm install
    COPY ./ /app/
    
    ARG env=prod
    
    RUN npm run build -- --prod --environment $env
    
    FROM nginx:1.13
    
    COPY --from=node /app/dist/ /usr/share/nginx/html
    
    RUN rm /etc/nginx/conf.d/default.conf
    COPY ./nginx-custom.conf /etc/nginx/conf.d/default.conf
    
    EXPOSE 4200
    #CMD npm start
    

    我运行“docker build-t app:prod”在本地构建docker应用程序,并使用“docker run-p 4200:4200 app:prod”运行它。这很好用。

    我现在用“docker build-t app”构建docker应用程序,然后我将其标记为最新版本,将其推送到AWS的存储库中,创建cluser、task等。

    在AWS EC2中,一切看起来都正常——但当我使用带有公共IP和端口4200的浏览器时,我无法连接到我的应用程序。

    当我尝试运行“docker run-p 4200:4200应用程序”时,我收到以下消息: 无法在本地找到图像“app:latest” docker:守护进程的错误响应:应用程序的拉取访问被拒绝,存储库不存在或可能需要“docker登录”。 请参阅“docker run--帮助”。

    不确定这是否相关,但我想知道为什么我不能以这种方式启动我的应用程序?

    你知道我可以在AWS上查什么来发现问题吗?

    谢谢 迈克尔

    1 回复  |  直到 6 年前
        1
  •  0
  •   Neekoy    6 年前

    添加正确的名称-当你标记为“app”时,Docker正在主注册表中查找。

    docker build -t your.remote.repository/michael/app .
    

    然后运行它:

    docker run -p 4200:4200 your.remote.repository/michael/app
    

    正确的标签很重要,这样Docker就可以找到正确的位置。