chore: setup docker-compose.yml
This commit is contained in:
parent
c957d419ee
commit
fdbfeb2e37
163
.dockerignore
Normal file
163
.dockerignore
Normal file
@ -0,0 +1,163 @@
|
|||||||
|
### Bower ###
|
||||||
|
bower_components
|
||||||
|
.bower-cache
|
||||||
|
.bower-registry
|
||||||
|
.bower-tmp
|
||||||
|
|
||||||
|
|
||||||
|
### Git ###
|
||||||
|
*.orig
|
||||||
|
|
||||||
|
|
||||||
|
### macOS ###
|
||||||
|
*.DS_Store
|
||||||
|
.AppleDouble
|
||||||
|
.LSOverride
|
||||||
|
|
||||||
|
# Thumbnails
|
||||||
|
._*
|
||||||
|
# Files that might appear in the root of a volume
|
||||||
|
.DocumentRevisions-V100
|
||||||
|
.fseventsd
|
||||||
|
.Spotlight-V100
|
||||||
|
.TemporaryItems
|
||||||
|
.Trashes
|
||||||
|
.VolumeIcon.icns
|
||||||
|
.com.apple.timemachine.donotpresent
|
||||||
|
# Directories potentially created on remote AFP share
|
||||||
|
.AppleDB
|
||||||
|
.AppleDesktop
|
||||||
|
Network Trash Folder
|
||||||
|
Temporary Items
|
||||||
|
.apdisk
|
||||||
|
|
||||||
|
|
||||||
|
### Node ###
|
||||||
|
# Logs
|
||||||
|
logs
|
||||||
|
*.log
|
||||||
|
npm-debug.log*
|
||||||
|
|
||||||
|
# Runtime data
|
||||||
|
pids
|
||||||
|
*.pid
|
||||||
|
*.seed
|
||||||
|
*.pid.lock
|
||||||
|
|
||||||
|
# Directory for instrumented libs generated by jscoverage/JSCover
|
||||||
|
lib-cov
|
||||||
|
|
||||||
|
# Coverage directory used by tools like istanbul
|
||||||
|
coverage
|
||||||
|
|
||||||
|
# nyc test coverage
|
||||||
|
.nyc_output
|
||||||
|
|
||||||
|
# Grunt intermediate storage (http://gruntjs.com/creating-plugins#storing-task-files)
|
||||||
|
.grunt
|
||||||
|
|
||||||
|
# node-waf configuration
|
||||||
|
.lock-wscript
|
||||||
|
|
||||||
|
# Compiled binary addons (http://nodejs.org/api/addons.html)
|
||||||
|
build/Release
|
||||||
|
|
||||||
|
# Dependency directories
|
||||||
|
node_modules
|
||||||
|
jspm_packages
|
||||||
|
|
||||||
|
# Optional npm cache directory
|
||||||
|
.npm
|
||||||
|
|
||||||
|
# Optional eslint cache
|
||||||
|
.eslintcache
|
||||||
|
|
||||||
|
# Optional REPL history
|
||||||
|
.node_repl_history
|
||||||
|
|
||||||
|
# Output of 'npm pack'
|
||||||
|
*.tgz
|
||||||
|
|
||||||
|
|
||||||
|
### SublimeText ###
|
||||||
|
# cache files for sublime text
|
||||||
|
*.tmlanguage.cache
|
||||||
|
*.tmPreferences.cache
|
||||||
|
*.stTheme.cache
|
||||||
|
|
||||||
|
# workspace files are user-specific
|
||||||
|
*.sublime-workspace
|
||||||
|
|
||||||
|
# project files should be checked into the repository, unless a significant
|
||||||
|
# proportion of contributors will probably not be using SublimeText
|
||||||
|
# *.sublime-project
|
||||||
|
|
||||||
|
# sftp configuration file
|
||||||
|
sftp-config.json
|
||||||
|
|
||||||
|
# Package control specific files
|
||||||
|
Package Control.last-run
|
||||||
|
Package Control.ca-list
|
||||||
|
Package Control.ca-bundle
|
||||||
|
Package Control.system-ca-bundle
|
||||||
|
Package Control.cache/
|
||||||
|
Package Control.ca-certs/
|
||||||
|
bh_unicode_properties.cache
|
||||||
|
|
||||||
|
# Sublime-github package stores a github token in this file
|
||||||
|
# https://packagecontrol.io/packages/sublime-github
|
||||||
|
GitHub.sublime-settings
|
||||||
|
|
||||||
|
|
||||||
|
### Vim ###
|
||||||
|
# swap
|
||||||
|
[._]*.s[a-w][a-z]
|
||||||
|
[._]s[a-w][a-z]
|
||||||
|
# session
|
||||||
|
Session.vim
|
||||||
|
# temporary
|
||||||
|
.netrwhist
|
||||||
|
*~
|
||||||
|
# auto-generated tag files
|
||||||
|
tags
|
||||||
|
|
||||||
|
|
||||||
|
### Windows ###
|
||||||
|
# Windows image file caches
|
||||||
|
Thumbs.db
|
||||||
|
ehthumbs.db
|
||||||
|
|
||||||
|
# Folder config file
|
||||||
|
Desktop.ini
|
||||||
|
|
||||||
|
# Recycle Bin used on file shares
|
||||||
|
$RECYCLE.BIN/
|
||||||
|
|
||||||
|
# Windows Installer files
|
||||||
|
*.cab
|
||||||
|
*.msi
|
||||||
|
*.msm
|
||||||
|
*.msp
|
||||||
|
|
||||||
|
# Windows shortcuts
|
||||||
|
*.lnk
|
||||||
|
|
||||||
|
|
||||||
|
### Application Specific ###
|
||||||
|
.env
|
||||||
|
|
||||||
|
# PostCSS
|
||||||
|
*.postcss.js
|
||||||
|
|
||||||
|
/cloudapi-graphql/credentials.json
|
||||||
|
/docker-graphql/config.json
|
||||||
|
tap-xunit
|
||||||
|
/ui/dist
|
||||||
|
|
||||||
|
_todo
|
||||||
|
packages/*/dist
|
||||||
|
packages/*/buid
|
||||||
|
packages/ui-toolkit/styleguide
|
||||||
|
packages/*/node_modules
|
||||||
|
legacy
|
||||||
|
|
2
.gitignore
vendored
2
.gitignore
vendored
@ -156,3 +156,5 @@ tap-xunit
|
|||||||
|
|
||||||
_todo
|
_todo
|
||||||
packages/*/dist
|
packages/*/dist
|
||||||
|
packages/*/buid
|
||||||
|
packages/ui-toolkit/styleguide
|
||||||
|
14
circle.yml
14
circle.yml
@ -37,14 +37,12 @@ test:
|
|||||||
# test
|
# test
|
||||||
- yarn run test
|
- yarn run test
|
||||||
|
|
||||||
# deployment:
|
deployment:
|
||||||
# development:
|
development:
|
||||||
# branch: master
|
branch: master
|
||||||
# commands:
|
commands:
|
||||||
# - ./bin/docker-login
|
- ./bin/docker-login
|
||||||
# - make -j2 build
|
- ./bin/deploy
|
||||||
# - make -j2 push
|
|
||||||
# - ./bin/deploy
|
|
||||||
# production:
|
# production:
|
||||||
# tag: /production-*/
|
# tag: /production-*/
|
||||||
# commands:
|
# commands:
|
||||||
|
94
docker-compose.yml
Normal file
94
docker-compose.yml
Normal file
@ -0,0 +1,94 @@
|
|||||||
|
version: "2"
|
||||||
|
|
||||||
|
services:
|
||||||
|
#############################################################################
|
||||||
|
# CONSUL
|
||||||
|
#
|
||||||
|
# Consul is the service catalog that helps discovery between the components
|
||||||
|
# Change "-bootstrap" to "-bootstrap-expect 3", then scale to 3 or more to
|
||||||
|
# turn this into an HA Consul raft.
|
||||||
|
#############################################################################
|
||||||
|
consul:
|
||||||
|
image: autopilotpattern/consul:latest
|
||||||
|
command: >
|
||||||
|
/usr/local/bin/containerpilot
|
||||||
|
/bin/consul agent -server
|
||||||
|
-bootstrap-expect 3
|
||||||
|
-config-dir=/etc/consul
|
||||||
|
-ui-dir /ui
|
||||||
|
restart: always
|
||||||
|
mem_limit: 128m
|
||||||
|
ports:
|
||||||
|
- 8500
|
||||||
|
dns:
|
||||||
|
- 127.0.0.1
|
||||||
|
labels:
|
||||||
|
- triton.cns.services=consul-$CIRCLE_BRANCH
|
||||||
|
- com.docker.swarm.affinities=["container!=~*"]
|
||||||
|
|
||||||
|
#############################################################################
|
||||||
|
# PROMETHEUS
|
||||||
|
#
|
||||||
|
# Prometheus is an open source performance monitoring tool
|
||||||
|
# it is included here for demo purposes and is not required
|
||||||
|
#############################################################################
|
||||||
|
prometheus:
|
||||||
|
image: autopilotpattern/prometheus:latest
|
||||||
|
restart: always
|
||||||
|
mem_limit: 1g
|
||||||
|
ports:
|
||||||
|
- 9090
|
||||||
|
labels:
|
||||||
|
- triton.cns.services=prometheus-$CIRCLE_BRANCH
|
||||||
|
- com.docker.swarm.affinities=["container!=~*prometheus*"]
|
||||||
|
|
||||||
|
#############################################################################
|
||||||
|
# STYLEGUIDE
|
||||||
|
#############################################################################
|
||||||
|
styleguide:
|
||||||
|
build:
|
||||||
|
context: .
|
||||||
|
dockerfile: ./packages/ui-toolkit/Dockerfile
|
||||||
|
ports:
|
||||||
|
- 6060:6060
|
||||||
|
mem_limit: 512m
|
||||||
|
labels:
|
||||||
|
- triton.cns.services=ui-$CIRCLE_BRANCH
|
||||||
|
- com.docker.swarm.affinities=["container!=~*styleguide*"]
|
||||||
|
environment:
|
||||||
|
- CONSUL_AGENT=1
|
||||||
|
- PORT=6060
|
||||||
|
|
||||||
|
#############################################################################
|
||||||
|
# FRONTEND
|
||||||
|
#############################################################################
|
||||||
|
cp-frontend:
|
||||||
|
build:
|
||||||
|
context: .
|
||||||
|
dockerfile: ./packages/cp-frontend/Dockerfile
|
||||||
|
mem_limit: 512m
|
||||||
|
labels:
|
||||||
|
- triton.cns.services=frontend-$CIRCLE_BRANCH
|
||||||
|
- com.docker.swarm.affinities=["container!=~*cp-frontend*"]
|
||||||
|
environment:
|
||||||
|
- CONSUL_AGENT=1
|
||||||
|
- PORT=3069
|
||||||
|
ports:
|
||||||
|
- 3069:3069
|
||||||
|
|
||||||
|
#############################################################################
|
||||||
|
# BACKEND
|
||||||
|
#############################################################################
|
||||||
|
gql-mock-server:
|
||||||
|
build:
|
||||||
|
context: .
|
||||||
|
dockerfile: ./packages/cp-gql-mock-server/Dockerfile
|
||||||
|
mem_limit: 512m
|
||||||
|
labels:
|
||||||
|
- triton.cns.services=frontend-$CIRCLE_BRANCH
|
||||||
|
- com.docker.swarm.affinities=["container!=~*gql-mock-server*"]
|
||||||
|
environment:
|
||||||
|
- CONSUL_AGENT=1
|
||||||
|
- PORT=3000
|
||||||
|
ports:
|
||||||
|
- 3000:3000
|
12
packages/cp-frontend/Dockerfile
Normal file
12
packages/cp-frontend/Dockerfile
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
# todo change to 7
|
||||||
|
FROM quay.io/yldio/alpine-node-containerpilot:latest
|
||||||
|
|
||||||
|
RUN npm install lerna@^2.0.0-rc.5 \
|
||||||
|
&& ./node_modules/.bin/lerna clean --yes --scope joyent-cp-frontend --include-filtered-dependencies \
|
||||||
|
&& ./node_modules/.bin/lerna bootstrap --scope joyent-cp-frontend --include-filtered-dependencies
|
||||||
|
|
||||||
|
WORKDIR /home/node/app/packages/cp-frontend
|
||||||
|
COPY packages/cp-frontend/etc/containerpilot.json /etc/
|
||||||
|
|
||||||
|
EXPOSE 3069
|
||||||
|
CMD ["/bin/containerpilot", "yarn", "run", "start"]
|
46
packages/cp-frontend/etc/containerpilot.json
Normal file
46
packages/cp-frontend/etc/containerpilot.json
Normal file
@ -0,0 +1,46 @@
|
|||||||
|
{
|
||||||
|
"consul": "0.0.0.0:8500",
|
||||||
|
"services": [
|
||||||
|
{
|
||||||
|
"name": "cp-frontend",
|
||||||
|
"port": 3069,
|
||||||
|
"health": "/usr/bin/curl -o /dev/null --fail -s http://0.0.0.0:3069/",
|
||||||
|
"poll": 3,
|
||||||
|
"ttl": 10
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"backends": [],
|
||||||
|
"telemetry": {
|
||||||
|
"port": 9090,
|
||||||
|
"sensors": [
|
||||||
|
{
|
||||||
|
"name": "frontend_memory_percent",
|
||||||
|
"help": "percentage of memory used",
|
||||||
|
"type": "gauge",
|
||||||
|
"poll": 5,
|
||||||
|
"check": ["/bin/sensors", "memory"]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "frontend_cpu_load",
|
||||||
|
"help": "cpu load",
|
||||||
|
"type": "gauge",
|
||||||
|
"poll": 5,
|
||||||
|
"check": ["/bin/sensors", "cpu"]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "frontend_disk_capacity",
|
||||||
|
"help": "disk capacity",
|
||||||
|
"type": "gauge",
|
||||||
|
"poll": 60,
|
||||||
|
"check": ["/bin/sensors", "diskcapacity"]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "frontend_disk_usage",
|
||||||
|
"help": "disk usage",
|
||||||
|
"type": "gauge",
|
||||||
|
"poll": 60,
|
||||||
|
"check": ["/bin/sensors", "diskusage"]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
12
packages/cp-gql-mock-server/Dockerfile
Normal file
12
packages/cp-gql-mock-server/Dockerfile
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
# todo change to 7
|
||||||
|
FROM quay.io/yldio/alpine-node-containerpilot:latest
|
||||||
|
|
||||||
|
RUN npm install lerna@^2.0.0-rc.5 \
|
||||||
|
&& ./node_modules/.bin/lerna clean --yes --scope joyent-cp-gql-mock-server --include-filtered-dependencies \
|
||||||
|
&& ./node_modules/.bin/lerna bootstrap --scope joyent-cp-gql-mock-server --include-filtered-dependencies
|
||||||
|
|
||||||
|
WORKDIR /home/node/app/packages/cp-gql-mock-server
|
||||||
|
COPY packages/cp-gql-mock-server/etc/containerpilot.json /etc/
|
||||||
|
|
||||||
|
EXPOSE 3000
|
||||||
|
CMD ["/bin/containerpilot", "yarn", "run", "start"]
|
46
packages/cp-gql-mock-server/etc/containerpilot.json
Normal file
46
packages/cp-gql-mock-server/etc/containerpilot.json
Normal file
@ -0,0 +1,46 @@
|
|||||||
|
{
|
||||||
|
"consul": "0.0.0.0:8500",
|
||||||
|
"services": [
|
||||||
|
{
|
||||||
|
"name": "cp-gql-mock-server",
|
||||||
|
"port": 3000,
|
||||||
|
"health": "/usr/bin/curl -o /dev/null --fail -s http://0.0.0.0:3000/",
|
||||||
|
"poll": 3,
|
||||||
|
"ttl": 10
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"backends": [],
|
||||||
|
"telemetry": {
|
||||||
|
"port": 9090,
|
||||||
|
"sensors": [
|
||||||
|
{
|
||||||
|
"name": "frontend_memory_percent",
|
||||||
|
"help": "percentage of memory used",
|
||||||
|
"type": "gauge",
|
||||||
|
"poll": 5,
|
||||||
|
"check": ["/bin/sensors", "memory"]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "frontend_cpu_load",
|
||||||
|
"help": "cpu load",
|
||||||
|
"type": "gauge",
|
||||||
|
"poll": 5,
|
||||||
|
"check": ["/bin/sensors", "cpu"]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "frontend_disk_capacity",
|
||||||
|
"help": "disk capacity",
|
||||||
|
"type": "gauge",
|
||||||
|
"poll": 60,
|
||||||
|
"check": ["/bin/sensors", "diskcapacity"]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "frontend_disk_usage",
|
||||||
|
"help": "disk usage",
|
||||||
|
"type": "gauge",
|
||||||
|
"poll": 60,
|
||||||
|
"check": ["/bin/sensors", "diskusage"]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
12
packages/ui-toolkit/Dockerfile
Normal file
12
packages/ui-toolkit/Dockerfile
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
# todo change to 7
|
||||||
|
FROM quay.io/yldio/alpine-node-containerpilot:latest
|
||||||
|
|
||||||
|
RUN npm install lerna@^2.0.0-rc.5 \
|
||||||
|
&& ./node_modules/.bin/lerna clean --yes --scope joyent-ui-toolkit --include-filtered-dependencies \
|
||||||
|
&& ./node_modules/.bin/lerna bootstrap --scope joyent-ui-toolkit --include-filtered-dependencies
|
||||||
|
|
||||||
|
WORKDIR /home/node/app/packages/ui-toolkit
|
||||||
|
COPY packages/ui-toolkit/etc/containerpilot.json /etc/
|
||||||
|
|
||||||
|
EXPOSE 6060
|
||||||
|
CMD ["/bin/containerpilot", "yarn", "run", "styleguide"]
|
46
packages/ui-toolkit/etc/containerpilot.json
Normal file
46
packages/ui-toolkit/etc/containerpilot.json
Normal file
@ -0,0 +1,46 @@
|
|||||||
|
{
|
||||||
|
"consul": "0.0.0.0:8500",
|
||||||
|
"services": [
|
||||||
|
{
|
||||||
|
"name": "ui-toolkit",
|
||||||
|
"port": 6060,
|
||||||
|
"health": "/usr/bin/curl -o /dev/null --fail -s http://0.0.0.0:6060/",
|
||||||
|
"poll": 3,
|
||||||
|
"ttl": 10
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"backends": [],
|
||||||
|
"telemetry": {
|
||||||
|
"port": 9090,
|
||||||
|
"sensors": [
|
||||||
|
{
|
||||||
|
"name": "frontend_memory_percent",
|
||||||
|
"help": "percentage of memory used",
|
||||||
|
"type": "gauge",
|
||||||
|
"poll": 5,
|
||||||
|
"check": ["/bin/sensors", "memory"]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "frontend_cpu_load",
|
||||||
|
"help": "cpu load",
|
||||||
|
"type": "gauge",
|
||||||
|
"poll": 5,
|
||||||
|
"check": ["/bin/sensors", "cpu"]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "frontend_disk_capacity",
|
||||||
|
"help": "disk capacity",
|
||||||
|
"type": "gauge",
|
||||||
|
"poll": 60,
|
||||||
|
"check": ["/bin/sensors", "diskcapacity"]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "frontend_disk_usage",
|
||||||
|
"help": "disk usage",
|
||||||
|
"type": "gauge",
|
||||||
|
"poll": 60,
|
||||||
|
"check": ["/bin/sensors", "diskusage"]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user