shipitron 0.4.1 → 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 428064c728cfd00ba1807fa1a655c1649a78323ea98f85be6f71baf6ae939892
4
- data.tar.gz: facdb618cffd2c41256e40c436daf6fc6fb906073919959a9c21982dd0c95bee
3
+ metadata.gz: feb18a95f97617bac70d81fa89272203c5ee7aafc2e13f83f0f26bfd12bfbbd8
4
+ data.tar.gz: 66c40b51b8802ea914d40e8a5738066c1d3789c47ea92fcdb346e00bbf9de87c
5
5
  SHA512:
6
- metadata.gz: 88cf5a283cd744f88721e63f908c12964bfa2831fc51890d98dd5e28446c2e83a03c51bdec3cf2fa6c04acb5e234db4e3451a1e38c795d70e7ead705ac51b0db
7
- data.tar.gz: e2a23cbc284326a66f49d60f7823ed5151e702b63e0bc9c111564a48649bdce7f9e8f18dd07bf7e6bc947b0272e7dadabb984efda647e958cb84e1ceefd4a0b9
6
+ metadata.gz: 544be4870e87d518c4ac12cc0deb607921ca8f1972b970981d5e9a2ad6b00df43caed53cce5faed0627a088d1036ff8d59fd600780fed8261b2c0906b979abca
7
+ data.tar.gz: d935dfb8223048b941e5c77819b3e22ba9676c9f8df88ef0f97940efaf7db6772659de84e23e4755c7274032329b324c992909198d458739f10c254d2af51e4c
data/Dockerfile CHANGED
@@ -16,24 +16,7 @@ RUN addgroup -S shipitron && \
16
16
  ENV GOSU_VERSION 1.10
17
17
  ENV DUMB_INIT_VERSION 1.2.0
18
18
 
19
- RUN apk add --no-cache ca-certificates gnupg openssl && \
20
- mkdir -p /tmp/build && \
21
- cd /tmp/build && \
22
- gpg --keyserver pool.sks-keyservers.net --recv-keys B42F6819007F00F88E364FD4036A9C25BF357DD4 && \
23
- wget -O gosu "https://github.com/tianon/gosu/releases/download/${GOSU_VERSION}/gosu-amd64" && \
24
- wget -O gosu.asc "https://github.com/tianon/gosu/releases/download/${GOSU_VERSION}/gosu-amd64.asc" && \
25
- gpg --verify gosu.asc && \
26
- chmod +x gosu && \
27
- cp gosu /bin/gosu && \
28
- wget https://github.com/Yelp/dumb-init/releases/download/v${DUMB_INIT_VERSION}/dumb-init_${DUMB_INIT_VERSION}_amd64 && \
29
- wget https://github.com/Yelp/dumb-init/releases/download/v${DUMB_INIT_VERSION}/sha256sums && \
30
- grep dumb-init_${DUMB_INIT_VERSION}_amd64$ sha256sums | sha256sum -c && \
31
- chmod +x dumb-init_${DUMB_INIT_VERSION}_amd64 && \
32
- cp dumb-init_${DUMB_INIT_VERSION}_amd64 /bin/dumb-init && \
33
- cd /tmp && \
34
- rm -rf /tmp/build && \
35
- apk del gnupg && \
36
- rm -rf /root/.gnupg
19
+ RUN apk add --no-cache ca-certificates openssl tini su-exec
37
20
 
38
21
  RUN apk add --no-cache \
39
22
  build-base \
@@ -63,6 +46,5 @@ RUN ln -s /shipitron/exe/shipitron /usr/local/bin/shipitron && \
63
46
 
64
47
  COPY scripts/docker-entrypoint.sh /docker-entrypoint.sh
65
48
 
66
- ENV DUMB_INIT_SETSID 0
67
- ENTRYPOINT ["/docker-entrypoint.sh"]
49
+ ENTRYPOINT ["/sbin/tini", "-g", "--", "/docker-entrypoint.sh"]
68
50
  CMD ["help"]
@@ -40,7 +40,7 @@ RUN apk add --no-cache \
40
40
 
41
41
  WORKDIR /app
42
42
 
43
- ENV SHIPITRON_VERSION=0.4.1
43
+ ENV SHIPITRON_VERSION=1.0.0
44
44
 
45
45
  RUN gem install shipitron -v ${SHIPITRON_VERSION} && \
46
46
  mkdir -p /home/shipitron/.ssh && \
data/README.md CHANGED
@@ -36,14 +36,14 @@ applications:
36
36
  - `./build_dev.sh`
37
37
  - `docker run -it --rm -v $(pwd):/shipitron -v shipitron_fog:/fog -e FOG_LOCAL=true -w /shipitron outstand/shipitron:dev rspec spec` to run specs
38
38
  - `APP_PATH=/path/to/app`
39
- - `docker run -it --rm -v $(pwd):/shipitron -v $APP_PATH:/app outstand/shipitron:dev deploy <app>` to run client side
40
- - `docker run -it --rm -v $(pwd):/shipitron -v $APP_PATH:/app outstand/shipitron:dev deploy <app> --simulate` to get the arguments for `server_deploy` below
39
+ - `docker run -it --rm -v $(pwd):/shipitron -v $HOME/.config/shipitron:/home/shipitron/.config/shipitron -v $APP_PATH:/app outstand/shipitron:dev deploy <app>` to run client side
40
+ - `docker run -it --rm -v $(pwd):/shipitron -v $HOME/.config/shipitron:/home/shipitron/.config/shipitron -v $APP_PATH:/app outstand/shipitron:dev deploy <app> --simulate` to get the arguments for `server_deploy` below
41
41
  - `docker run -it --rm --dns 10.10.10.2 -v $(pwd):/shipitron -v $APP_PATH:/app -v /bin/docker:/bin/docker -v /var/run/docker.sock:/var/run/docker.sock -v shipitron_fog:/fog -e FOG_LOCAL=true -e CONSUL_HOST=consul outstand/shipitron:dev server_deploy --name dummy-app --repository git@github.com:outstand/dummy-app --bucket outstand-shipitron --image-name outstand/dummy-app --region us-east-1 --cluster-name us-east-1-prod-blue --ecs-task-defs dummy-app --ecs-services dummy-app --build-script shipitron/build.sh --post-builds 'ecs_task:dummy-app,container_name:dummy-app,command:echo postbuild' --ecs-task-def-templates LS0tCmZhbWlseTogZHVtbXktYXBwCmNvbnRhaW5lcl9kZWZpbml0aW9uczoKICAtIG5hbWU6IGR1bW15LWFwcAogICAgaW1hZ2U6IG91dHN0YW5kL2R1bW15LWFwcDp7e3RhZ319CiAgICBtZW1vcnk6IDEyOAogICAgZXNzZW50aWFsOiB0cnVlCiAgICBwb3J0X21hcHBpbmdzOgogICAgICAtIGNvbnRhaW5lcl9wb3J0OiA4MAogICAgZW52aXJvbm1lbnQ6CiAgICAgIC0gbmFtZTogU0VSVklDRV84MF9OQU1FCiAgICAgICAgdmFsdWU6IGR1bW15Cg== --ecs-service-templates LS0tCmNsdXN0ZXI6IHt7Y2x1c3Rlcn19CnNlcnZpY2VfbmFtZTogZHVtbXktYXBwCnRhc2tfZGVmaW5pdGlvbjogZHVtbXktYXBwe3tyZXZpc2lvbn19CmRlc2lyZWRfY291bnQ6IHt7Y291bnR9fQojcm9sZToge3tyb2xlfX0KZGVwbG95bWVudF9jb25maWd1cmF0aW9uOgogIG1heGltdW1fcGVyY2VudDogMjAwCiAgbWluaW11bV9oZWFsdGh5X3BlcmNlbnQ6IDUwCg== --debug` to run server side (dummy-app is an example)
42
42
 
43
43
  Running a dev version in production:
44
44
  - `docker push outstand/shipitron:dev`
45
45
  - Update config to use `shipitron_task: shipitron-dev`
46
- - `docker run -it --rm -v $(pwd):/shipitron -v $APP_PATH:/app outstand/shipitron:dev deploy <app> --debug`
46
+ - `docker run -it --rm -v $(pwd):/shipitron -v $HOME/.config/shipitron:/home/shipitron/.config/shipitron -v $APP_PATH:/app outstand/shipitron:dev deploy <app> --debug`
47
47
 
48
48
  To release a new version:
49
49
  - Update the version number in `version.rb` and `Dockerfile.release` and commit the result.
@@ -6,7 +6,7 @@ require 'shipitron/smash'
6
6
 
7
7
  module Shipitron
8
8
  CONFIG_FILE = 'shipitron/config.yml'.freeze
9
- SECRETS_FILE = 'shipitron/secrets.yml'.freeze
9
+ SECRETS_FILE = '~/.config/shipitron/secrets.yml'.freeze
10
10
 
11
11
  class << self
12
12
  def config_file
@@ -18,7 +18,7 @@ module Shipitron
18
18
  end
19
19
 
20
20
  def config
21
- @config ||= Smash.load(config_file).merge(secrets)
21
+ @config ||= Smash.load(Pathname.new(config_file).expand_path.to_s).merge(secrets)
22
22
  rescue ArgumentError
23
23
  Logger.warn "Config file '#{config_file}' does not exist"
24
24
  @config = secrets
@@ -33,7 +33,7 @@ module Shipitron
33
33
  end
34
34
 
35
35
  def secrets
36
- @secrets ||= Smash.load(secrets_file)
36
+ @secrets ||= Smash.load(Pathname.new(secrets_file).expand_path.to_s)
37
37
  rescue ArgumentError
38
38
  Logger.warn "Secrets file '#{secrets_file}' does not exist"
39
39
  @secrets = Smash.new
@@ -11,7 +11,7 @@ module Shipitron
11
11
 
12
12
  desc 'deploy <app>', 'Deploys the app'
13
13
  option :config_file, default: 'shipitron/config.yml'
14
- option :secrets_file, default: 'shipitron/secrets.yml'
14
+ option :secrets_file, default: '~/.config/shipitron/secrets.yml'
15
15
  option :debug, type: :boolean, default: false
16
16
  option :simulate, type: :boolean, default: false
17
17
  def deploy(app)
@@ -49,7 +49,7 @@ module Shipitron
49
49
  option :ecs_service_templates, type: :array, default: []
50
50
  option :build_script, default: nil
51
51
  option :post_builds, type: :array
52
- option :secrets_file, default: 'shipitron/secrets.yml'
52
+ option :secrets_file, default: '~/.config/shipitron/secrets.yml'
53
53
  option :debug, type: :boolean, default: false
54
54
  def server_deploy
55
55
  setup(
@@ -93,7 +93,7 @@ module Shipitron
93
93
  option :service_count, type: :numeric, default: 0
94
94
  option :task_def_dir, default: 'shipitron/ecs_task_defs'
95
95
  option :service_dir, default: 'shipitron/ecs_services'
96
- option :secrets_file, default: 'shipitron/secrets.yml'
96
+ option :secrets_file, default: '~/.config/shipitron/secrets.yml'
97
97
  option :debug, type: :boolean, default: false
98
98
  def bootstrap(app)
99
99
  setup(
@@ -1,3 +1,3 @@
1
1
  module Shipitron
2
- VERSION = '0.4.1'
2
+ VERSION = '1.0.0'
3
3
  end
@@ -1,4 +1,4 @@
1
- #!/bin/dumb-init /bin/sh
1
+ #!/bin/sh
2
2
  set -e
3
3
 
4
4
  if [ -n "$USE_BUNDLE_EXEC" ]; then
@@ -8,7 +8,7 @@ else
8
8
  fi
9
9
 
10
10
  if ${BINARY} help "$1" 2>&1 | grep -q "shipitron $1"; then
11
- set -- gosu shipitron ${BINARY} "$@"
11
+ set -- su-exec shipitron ${BINARY} "$@"
12
12
 
13
13
  if [ -n "$FOG_LOCAL" ]; then
14
14
  chown -R shipitron:shipitron /fog
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: shipitron
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.1
4
+ version: 1.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ryan Schlesinger
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2018-01-29 00:00:00.000000000 Z
11
+ date: 2018-04-06 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: thor
@@ -346,7 +346,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
346
346
  version: '0'
347
347
  requirements: []
348
348
  rubyforge_project:
349
- rubygems_version: 2.7.4
349
+ rubygems_version: 2.7.6
350
350
  signing_key:
351
351
  specification_version: 4
352
352
  summary: A deployment tool for use with Docker and ECS.