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 +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.
|