在docker

时间:2017-10-24 13:56:51

标签: node.js amazon-web-services docker webpack

我已经尝试将应用程序部署到aws一段时间了。我的网络应用程序在本地工作得非常好,但当它通过docker容器托管在aws上时,我遇到了以下错误:

Failed to load resource: the server responded with a status of 404 (bundle.js)
or...
GET http://my_AWS_ROUTE_53/bundle.js net::ERR_ABORTED

文件夹结构:

config
--> webpack.config.js    
dist
--> bundle.js
src
--> public (where all of my client code is, also what is producing bundle.js)
    --> index.js
--> server
    --> static
        --> index.html
Dockerfile
app.js

以下是我在app.js中提供文件的方式:

app.use('/', express.static(__dirname + '/src/server/static/'));
app.use('/', express.static(__dirname + '/dist/'));
app.get('/', function (request, response){
    response.sendFile(__dirname + '/src/server/static/index.html'); 
})

webpack.config.js输出:

entry: path.resolve(__dirname, "../src/public/index.js"),
    output: {
        path: path.resolve(__dirname, '../dist/'),
        publicPath: "/",
        filename: "bundle.js"
    },

的index.html:

<html>
<head>
  <meta charset="utf-8">
  <base href="/" />
  <title>Test</title>
</head>
<body>
  <div id="myTestApp"> </div>
</body>
<script src="bundle.js"></script>
</html>

我不知道是否值得注意,但是index.html上的GET在本地返回304。

我现在已经在大脑上碾压我的大脑了一天左右。有些东西告诉我,我做了一些愚蠢的事情,但却难以理解为什么它在本地工作,而不是在AWS上的docker中。

感谢。

编辑:这是我的dockerfile

FROM node:7.9.0

ENV appDir /var/www/app/current

RUN mkdir -p /var/www/app/current
WORKDIR ${appDir}

ADD package.json ./
RUN npm i

ADD . /var/www/app/current

EXPOSE 3001

CMD ["npm", "start"]

0 个答案:

没有答案