Docker 容器在本地工作,但在上传到 elasticbeanstalk 时不工作
Docker container works locally but not when uploaded to elasticbeanstalk
我的 docker 容器在本地工作,我正在尝试使用 travis 将它部署在弹性 beanstalk 上。
我的 travis 构建成功。 docker 容器已经在本地进行了测试并且可以正常工作。在 AWS Elastic Beanstalk 上,我的构建目录出现“不是 file/Directory 错误”。
Dockerfile
FROM node:alpine as builder
WORKDIR '/app'
COPY package.json .
RUN npm install
COPY . .
CMD ["npm", "run", "build"]
#Run Phase
FROM nginx
EXPOSE 80
COPY --from=builder /app/build /usr/share/nginx/html
Dockerfile.dev
FROM node:alpine
WORKDIR '/app'
COPY package.json .
RUN npm install
COPY . .
CMD ["npm", "run", "start"]
travis.yml
sudo: required
services:
- docker
before_install:
- docker build -t *******/docker -f Dockerfile.dev .
script:
- docker run -e CI=true *******/docker npm run test -- --coverage
deploy:
provider: elasticbeanstalk
region: "ap-south-1"
app: "docker"
env: "Docker-env-2"
bucket_name: "***********************"
bucket_path: "docker"
on:
branch: master
access_key_id: $AWS_ACCESS_KEY
secret_access_key: $AWS_SECRET_KEY
以下是日志-
Travis output
Elastic Beanstalk output
任何帮助将不胜感激,谢谢!
为了运行它在本地,我运行下面的命令-
1) docker build -t *******/docker .
2) docker run -it <port>:80 <container_id>
它按预期工作,我可以访问 localhost: 上的服务器。
我也在 travis.yml 文件中添加了相同的命令。
有两个 docker 文件,因为我只需要生产容器中的“构建”目录,我可以忽略其余目录来保存 space。
我意识到构建目录列在 .gitignore 文件中,因此阻止 travis-ci 访问它,因为它不在 repo 中。
一旦我删除它并re-deployed它,工作完美。
我的 docker 容器在本地工作,我正在尝试使用 travis 将它部署在弹性 beanstalk 上。 我的 travis 构建成功。 docker 容器已经在本地进行了测试并且可以正常工作。在 AWS Elastic Beanstalk 上,我的构建目录出现“不是 file/Directory 错误”。
Dockerfile
FROM node:alpine as builder
WORKDIR '/app'
COPY package.json .
RUN npm install
COPY . .
CMD ["npm", "run", "build"]
#Run Phase
FROM nginx
EXPOSE 80
COPY --from=builder /app/build /usr/share/nginx/html
Dockerfile.dev
FROM node:alpine
WORKDIR '/app'
COPY package.json .
RUN npm install
COPY . .
CMD ["npm", "run", "start"]
travis.yml
sudo: required
services:
- docker
before_install:
- docker build -t *******/docker -f Dockerfile.dev .
script:
- docker run -e CI=true *******/docker npm run test -- --coverage
deploy:
provider: elasticbeanstalk
region: "ap-south-1"
app: "docker"
env: "Docker-env-2"
bucket_name: "***********************"
bucket_path: "docker"
on:
branch: master
access_key_id: $AWS_ACCESS_KEY
secret_access_key: $AWS_SECRET_KEY
以下是日志-
Travis output
Elastic Beanstalk output
任何帮助将不胜感激,谢谢!
为了运行它在本地,我运行下面的命令-
1) docker build -t *******/docker .
2) docker run -it <port>:80 <container_id>
它按预期工作,我可以访问 localhost: 上的服务器。 我也在 travis.yml 文件中添加了相同的命令。
有两个 docker 文件,因为我只需要生产容器中的“构建”目录,我可以忽略其余目录来保存 space。
我意识到构建目录列在 .gitignore 文件中,因此阻止 travis-ci 访问它,因为它不在 repo 中。 一旦我删除它并re-deployed它,工作完美。