shipitron 0.4.1 → 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/Dockerfile +2 -20
- data/Dockerfile.release +1 -1
- data/README.md +3 -3
- data/lib/shipitron.rb +3 -3
- data/lib/shipitron/cli.rb +3 -3
- data/lib/shipitron/version.rb +1 -1
- data/scripts/docker-entrypoint.sh +2 -2
- metadata +3 -3
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: feb18a95f97617bac70d81fa89272203c5ee7aafc2e13f83f0f26bfd12bfbbd8
|
|
4
|
+
data.tar.gz: 66c40b51b8802ea914d40e8a5738066c1d3789c47ea92fcdb346e00bbf9de87c
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
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
|
|
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
|
-
|
|
67
|
-
ENTRYPOINT ["/docker-entrypoint.sh"]
|
|
49
|
+
ENTRYPOINT ["/sbin/tini", "-g", "--", "/docker-entrypoint.sh"]
|
|
68
50
|
CMD ["help"]
|
data/Dockerfile.release
CHANGED
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.
|
data/lib/shipitron.rb
CHANGED
|
@@ -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
|
data/lib/shipitron/cli.rb
CHANGED
|
@@ -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(
|
data/lib/shipitron/version.rb
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
#!/bin/
|
|
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 --
|
|
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
|
+
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-
|
|
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.
|
|
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.
|