2017-04-26 95 views
0

您好研究員程序員,角2應用在AWS泊塢窗容器中運行部署

對於一個項目,我們創建了一個角2,這將是我們的GUI。 此GUI將從Amazon Web Services(AWS)託管的後端API獲取他的數據。

圖形用戶界面也應該在AWS上運行,我們希望將它作爲EC2上的Docker容器運行。

圖形用戶界面在我的電腦上正常工作,但我無法制作出一個Prober Docker容器,它既不能在我的電腦上工作,也不能在AWS上工作。

你們是否知道一個很好的Tutorial/Hello World項目,我可以學習如何在Docker中創建一個Angular 2應用程序?

一些更多的信息Im如何試圖做到這一點:

我Dockerfile

# Create image based off of the official Node 6 image 
FROM node:6 

# Create a directory where our app will be placed 
RUN mkdir -p /usr/src/app 

# Change directory so that our commands run inside this new dir 
WORKDIR /usr/src/app 

# Copy dependency definitions 
COPY package.json /usr/src/app 

# Install dependecies 
RUN npm install 

# Get all the code needed to run the app 
COPY . /usr/src/app 

# Expose the port the app runs in 
EXPOSE 4200 

# Serve the app 
CMD ["npm", "start"] 

變化package.json

{ 
    ... 
    "scripts": { 
     "start": "ng serve -H 0.0.0.0", 
     ... 
    }, 
    ... 
    } 

運行docker build -t gui:test .

運行docker run --name gui -p 4200:4200 gui:test

如果我做得正確localhost:4200應該顯示我運行的Angluar 2應用程序,他沒有。

編輯: 從妖給出的端口不工作的IP藏漢192.168.99.100:4200

+0

我會爲docker image'' build --production'提供一個生成運行,並使用像nginx或apache這樣的web服務器來執行此操作。這可以防止在碼頭圖像中提供整個打印稿代碼 – Bernhard

+0

爲什麼不使用s3? – taskiner

+0

@Bernhard所以我得到我的'dist'目錄並將它複製到nginx'nginx/html /'並構建一個nginx的docker容器,對不對? – sHamann

回答

1

這是更實際的創建項目的構建,而不是使用整個angular-cli功能,從一個角度所服務的客戶端與樂隊分離,關注和混淆。

爲什麼:

ng serve是更多的發展環境下防止集中在開發過程中設立的網絡服務器,後端代理等。但除此之外,angular-cli也提供簡單的構建工具。

創建一個構建:

ng build --prod收集所有的依賴關係,並創建包含整個應用程序一個dist文件夾。

該文件夾的內容可以在web服務器被複制像阿帕奇nginx的IIS

旁註:

當你的應用是不是在域上運行根,例如www.my.domain。com/subfolder爲構建指定base href屬性也很重要。例如: -

ng build --prod --base-href /subfolder/

那麼您的應用將www.my.domain.com/subfolder/正常運行和圖像等所有資產等被加載。