我目前正在开发基于docker-compose
的 node.js 项目,该项目处理应用程序本身和 mongo 数据库。在数据库中存储了初始用户。
我已经知道它最初应该如何运作:
docker-compose up
现在该应用应该在线。在生产模式下,数据库获得更多数据。再次推送到master时,它应该再次部署,但不能使用github上的初始数据覆盖实时数据。目前整个过程有效但仍覆盖数据。我在本地和远程计算机上运行以下命令,但没有任何成功:
cd ./data && git ls-files | tr '\n' ' ' | xargs git update-index --assume-unchanged
我认为 codedeploy 只是拉取当前主分支但忽略了./data
目录,因为上面的命令和.gitignore
文件。但它似乎并非如此。
到目前为止还有什么错过的吗?希望您有一些提示和想法如何解决这个问题。
非常感谢!!
附:以下是一些信息和文件摘录。
系统详情
文件结构
config/ # Some config files
data/ # The database its directory
src/ # The source files
.gitignore
.travis.yml
appspec.yml
docker-compose.yml
以下是一些文件摘录:
的.gitignore
data/*
.travis.yml
language: node_js
sudo: required
dist: trusty
node_js:
- 6
before_script:
- npm install
script:
- npm run lint
branches:
only:
- master
deploy:
provider: codedeploy
wait-until-deployed: true
access_key_id: 'mykeyid'
secret_access_key: 'myaccesskey'
application: appname
deployment_group: grpname
region: eu-central-1
appspec.yml
version: 0.0
os: linux
files:
- source: /
destination: /home/ubuntu/app
permissions:
- object: /
pattern: "**"
owner: ubuntu
搬运工-compose.yml
version: '2'
services:
server:
image: node:6
command: 'npm run go'
working_dir: '/app'
volumes:
- ./:/app
depends_on:
- mongo
ports:
- '1337:1337'
environment:
- NODE_ENV=prod
links:
- mongo:mongodb
mongo:
image: mongo:latest
ports:
- '127.0.0.1:27017:27017'
volumes:
- ./data/:/data/db