shipitron 1.2.0 → 1.4.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.buildkite/pipeline.yml +94 -0
- data/.dockerignore +1 -0
- data/.gitattributes +1 -0
- data/.gitignore +1 -0
- data/.rspec +1 -0
- data/Deskfile +15 -0
- data/Dockerfile +40 -15
- data/Dockerfile.release +29 -6
- data/Dockerfile.staging +70 -0
- data/Gemfile +2 -0
- data/README.md +53 -15
- data/docker-compose.yml +54 -0
- data/lib/shipitron.rb +19 -2
- data/lib/shipitron/cli.rb +42 -42
- data/lib/shipitron/client.rb +9 -0
- data/lib/shipitron/client/bootstrap_application.rb +1 -0
- data/lib/shipitron/client/create_ecs_services.rb +7 -7
- data/lib/shipitron/client/deploy_application.rb +2 -0
- data/lib/shipitron/client/ensure_deploy_not_running.rb +2 -1
- data/lib/shipitron/client/fetch_clusters.rb +1 -0
- data/lib/shipitron/client/force_deploy.rb +1 -0
- data/lib/shipitron/client/generate_deploy.rb +41 -0
- data/lib/shipitron/client/load_application_config.rb +17 -0
- data/lib/shipitron/client/load_templates.rb +1 -0
- data/lib/shipitron/client/register_ecs_task_definitions.rb +5 -5
- data/lib/shipitron/client/run_ecs_tasks.rb +101 -72
- data/lib/shipitron/docker_image.rb +4 -1
- data/lib/shipitron/find_docker_volume_name.rb +68 -0
- data/lib/shipitron/git_info.rb +57 -0
- data/lib/shipitron/mustache_yaml_parser.rb +12 -8
- data/lib/shipitron/s3_copy.rb +46 -0
- data/lib/shipitron/server/deploy_application.rb +2 -0
- data/lib/shipitron/server/docker/build_image.rb +4 -1
- data/lib/shipitron/server/docker/configure.rb +46 -10
- data/lib/shipitron/server/docker/push_image.rb +3 -0
- data/lib/shipitron/server/docker/run_build_script.rb +17 -10
- data/lib/shipitron/server/download_build_cache.rb +11 -3
- data/lib/shipitron/server/fetch_deploy.rb +50 -0
- data/lib/shipitron/server/git/clone_local_copy.rb +4 -5
- data/lib/shipitron/server/git/update_cache.rb +2 -1
- data/lib/shipitron/server/run_post_build.rb +40 -1
- data/lib/shipitron/server/transform_cli_args.rb +4 -0
- data/lib/shipitron/server/update_ecs_task_definitions.rb +2 -1
- data/lib/shipitron/server/upload_build_cache.rb +10 -9
- data/lib/shipitron/version.rb +1 -1
- data/scripts/docker-entrypoint.sh +37 -3
- data/scripts/release-entrypoint.sh +20 -0
- data/shipitron.gemspec +11 -8
- data/test.yml +5 -0
- metadata +78 -25
- data/build_dev.sh +0 -27
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: ce2ad45258aa11acc35b0c3041aab0fe3f20bb56f076764120f1b6466233f310
|
4
|
+
data.tar.gz: 938b06da85c43614c316c7d63a755440e8d7d61e6396ee0bc574040fda9bd817
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 5a93f308e3065ada355022a5a18977d903e00ae56387e98218bf26557101ca8ccbb1a2d7c1950c6c2849b0bc47da860a57dccb6d0365216df99670a90245ce2c
|
7
|
+
data.tar.gz: 2a041845cb6bc87c29366de8e39702fb691bec9efb7a2e53df8673d30bbd9988edaa3147fe68a98c09fe6be80b81aa8a3094ded4fef464df23622c421ea63017
|
@@ -0,0 +1,94 @@
|
|
1
|
+
env:
|
2
|
+
BUILDKITE_PLUGIN_DOCKER_CACHE_S3_BUCKET: "outstand-buildkite-cache"
|
3
|
+
# BUILDKITE_PLUGIN_DOCKER_CACHE_VOLUME_DEBUG: "true"
|
4
|
+
BUILDKITE_PLUGIN_DOCKER_COMPOSE_SHELL: "false"
|
5
|
+
# BUILDKITE_PLUGIN_DOCKER_COMPOSE_UPLOAD_CONTAINER_LOGS: "always"
|
6
|
+
BUILDKITE_PLUGIN_DOCKER_COMPOSE_PULL_RETRIES: 5
|
7
|
+
BUILDKITE_PLUGIN_DOCKER_COMPOSE_PUSH_RETRIES: 5
|
8
|
+
PLUGIN_DOCKER_COMPOSE_VERSION: "17bac3aaee1360e39381b89bb45513b11838238e"
|
9
|
+
PLUGIN_DOCKER_CACHE_VERSION: "f3d8feb52a25c69c75565e9f0b80375eae51850a"
|
10
|
+
|
11
|
+
steps:
|
12
|
+
- label: ":docker: Build"
|
13
|
+
key: build
|
14
|
+
plugins:
|
15
|
+
- seek-oss/aws-sm#v2.2.1:
|
16
|
+
env:
|
17
|
+
DOCKER_LOGIN_PASSWORD: "/buildkite/docker_password"
|
18
|
+
|
19
|
+
- docker-login#v2.0.1:
|
20
|
+
username: outstandci
|
21
|
+
|
22
|
+
- ecr#v2.1.1:
|
23
|
+
login: true
|
24
|
+
region: "us-east-1"
|
25
|
+
|
26
|
+
- https://github.com/outstand/docker-compose-buildkite-plugin.git#${PLUGIN_DOCKER_COMPOSE_VERSION}:
|
27
|
+
build: specs
|
28
|
+
image-repository: 786715713882.dkr.ecr.us-east-1.amazonaws.com/ci-images
|
29
|
+
config:
|
30
|
+
- docker-compose.yml
|
31
|
+
- test.yml
|
32
|
+
|
33
|
+
- label: ":bundler: :rubygems:"
|
34
|
+
key: bundle_install
|
35
|
+
command: bundle install
|
36
|
+
depends_on: build
|
37
|
+
plugins:
|
38
|
+
- seek-oss/aws-sm#v2.2.1:
|
39
|
+
env:
|
40
|
+
DOCKER_LOGIN_PASSWORD: "/buildkite/docker_password"
|
41
|
+
|
42
|
+
- docker-login#v2.0.1:
|
43
|
+
username: outstandci
|
44
|
+
|
45
|
+
- ecr#v2.1.1:
|
46
|
+
login: true
|
47
|
+
region: "us-east-1"
|
48
|
+
|
49
|
+
- https://github.com/outstand/docker-compose-buildkite-plugin.git#${PLUGIN_DOCKER_COMPOSE_VERSION}:
|
50
|
+
run: specs
|
51
|
+
dependencies: false
|
52
|
+
config:
|
53
|
+
- docker-compose.yml
|
54
|
+
- test.yml
|
55
|
+
|
56
|
+
- https://github.com/outstand/docker-cache-buildkite-plugin.git#${PLUGIN_DOCKER_CACHE_VERSION}:
|
57
|
+
name: bundler-cache
|
58
|
+
keys:
|
59
|
+
- v1-bundler-cache-{{ arch }}-{{ checksum "shipitron.gemspec" }}-{{ checksum "Gemfile" }}
|
60
|
+
- v1-bundler-cache-{{ arch }}-
|
61
|
+
save: true
|
62
|
+
volumes:
|
63
|
+
- bundler-data
|
64
|
+
|
65
|
+
- label: ":ruby: Specs"
|
66
|
+
command: rspec spec
|
67
|
+
depends_on: bundle_install
|
68
|
+
plugins:
|
69
|
+
- seek-oss/aws-sm#v2.2.1:
|
70
|
+
env:
|
71
|
+
DOCKER_LOGIN_PASSWORD: "/buildkite/docker_password"
|
72
|
+
json-to-env:
|
73
|
+
- secret-id: "/buildkite/rails/env_vars"
|
74
|
+
|
75
|
+
- docker-login#v2.0.1:
|
76
|
+
username: outstandci
|
77
|
+
|
78
|
+
- ecr#v2.1.1:
|
79
|
+
login: true
|
80
|
+
region: "us-east-1"
|
81
|
+
|
82
|
+
- https://github.com/outstand/docker-compose-buildkite-plugin.git#${PLUGIN_DOCKER_COMPOSE_VERSION}:
|
83
|
+
run: specs
|
84
|
+
config:
|
85
|
+
- docker-compose.yml
|
86
|
+
- test.yml
|
87
|
+
|
88
|
+
- https://github.com/outstand/docker-cache-buildkite-plugin.git#${PLUGIN_DOCKER_CACHE_VERSION}:
|
89
|
+
name: bundler-cache
|
90
|
+
keys:
|
91
|
+
- v1-bundler-cache-{{ arch }}-{{ checksum "shipitron.gemspec" }}-{{ checksum "Gemfile" }}
|
92
|
+
- v1-bundler-cache-{{ arch }}-
|
93
|
+
volumes:
|
94
|
+
- bundler-data
|
data/.dockerignore
CHANGED
data/.gitattributes
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
spec/fixtures/test_repo.tgz filter=lfs diff=lfs merge=lfs -text
|
data/.gitignore
CHANGED
data/.rspec
CHANGED
data/Deskfile
ADDED
data/Dockerfile
CHANGED
@@ -1,12 +1,7 @@
|
|
1
|
-
FROM
|
2
|
-
COPY cache/ /tmp/
|
3
|
-
RUN cd /usr/local/bundle && \
|
4
|
-
([ -f /tmp/bundler-data.tar.gz ] && \
|
5
|
-
tar -zxf /tmp/bundler-data.tar.gz && \
|
6
|
-
rm /tmp/bundler-data.tar.gz) || true
|
1
|
+
FROM outstand/fixuid as fixuid
|
7
2
|
|
8
|
-
FROM ruby:2.
|
9
|
-
|
3
|
+
FROM ruby:2.7.3-alpine
|
4
|
+
LABEL maintainer="Ryan Schlesinger <ryan@outstand.com>"
|
10
5
|
|
11
6
|
RUN addgroup -S shipitron && \
|
12
7
|
adduser -S -G shipitron shipitron && \
|
@@ -15,31 +10,61 @@ RUN addgroup -S shipitron && \
|
|
15
10
|
|
16
11
|
RUN apk add --no-cache \
|
17
12
|
ca-certificates \
|
18
|
-
openssl \
|
13
|
+
openssl-dev \
|
19
14
|
tini \
|
20
15
|
su-exec \
|
21
16
|
build-base \
|
22
17
|
git \
|
18
|
+
git-lfs \
|
23
19
|
openssh-client \
|
24
20
|
perl \
|
25
21
|
bash \
|
26
22
|
curl \
|
27
23
|
wget \
|
28
|
-
jq
|
24
|
+
jq \
|
25
|
+
cmake
|
29
26
|
|
27
|
+
COPY --from=fixuid /usr/local/bin/fixuid /usr/local/bin/fixuid
|
28
|
+
RUN chmod 4755 /usr/local/bin/fixuid && \
|
29
|
+
USER=shipitron && \
|
30
|
+
GROUP=shipitron && \
|
31
|
+
mkdir -p /etc/fixuid && \
|
32
|
+
printf "user: $USER\ngroup: $GROUP\n" > /etc/fixuid/config.yml
|
33
|
+
|
34
|
+
ENV ECR_CREDENTIAL_HELPER_VERSION 0.5.0
|
35
|
+
RUN cd /usr/local/bin && \
|
36
|
+
wget https://amazon-ecr-credential-helper-releases.s3.us-east-2.amazonaws.com/${ECR_CREDENTIAL_HELPER_VERSION}/linux-amd64/docker-credential-ecr-login && \
|
37
|
+
chmod +x docker-credential-ecr-login
|
38
|
+
|
39
|
+
ENV BUILDKIT_VERSION v0.8.3
|
40
|
+
RUN cd /usr/local/bin && \
|
41
|
+
wget -nv https://github.com/moby/buildkit/releases/download/${BUILDKIT_VERSION}/buildkit-${BUILDKIT_VERSION}.linux-amd64.tar.gz && \
|
42
|
+
tar --strip-components=1 -zxvf buildkit-${BUILDKIT_VERSION}.linux-amd64.tar.gz bin/buildctl && \
|
43
|
+
chmod +x buildctl && \
|
44
|
+
rm -f buildkit-${BUILDKIT_VERSION}.linux-amd64.tar.gz
|
45
|
+
|
46
|
+
USER shipitron
|
47
|
+
ENV BUILDX_VERSION v0.5.1
|
48
|
+
RUN cd /home/shipitron && \
|
49
|
+
wget -nv https://github.com/docker/buildx/releases/download/${BUILDX_VERSION}/buildx-${BUILDX_VERSION}.linux-amd64 && \
|
50
|
+
mkdir -p ~/.docker/cli-plugins && \
|
51
|
+
mv buildx-${BUILDX_VERSION}.linux-amd64 ~/.docker/cli-plugins/docker-buildx && \
|
52
|
+
chmod a+x ~/.docker/cli-plugins/docker-buildx
|
53
|
+
|
54
|
+
USER root
|
30
55
|
ENV USE_BUNDLE_EXEC true
|
31
56
|
ENV BUNDLE_GEMFILE /shipitron/Gemfile
|
32
57
|
|
58
|
+
ENV BUNDLER_VERSION 2.2.21
|
59
|
+
RUN gem install bundler -v ${BUNDLER_VERSION} -i /usr/local/lib/ruby/gems/$(ls /usr/local/lib/ruby/gems) --force
|
60
|
+
|
33
61
|
WORKDIR /app
|
34
62
|
COPY Gemfile shipitron.gemspec /shipitron/
|
35
63
|
COPY lib/shipitron/version.rb /shipitron/lib/shipitron/
|
36
64
|
|
37
|
-
|
38
|
-
RUN (bundle check || bundle install) && \
|
39
|
-
git config --global push.default simple
|
65
|
+
RUN git config --global push.default simple
|
40
66
|
COPY . /shipitron/
|
41
|
-
RUN
|
42
|
-
mkdir -p /home/shipitron/.ssh && \
|
67
|
+
RUN mkdir -p /home/shipitron/.ssh && \
|
43
68
|
chown shipitron:shipitron /home/shipitron/.ssh && \
|
44
69
|
chmod 700 /home/shipitron/.ssh
|
45
70
|
|
data/Dockerfile.release
CHANGED
@@ -1,5 +1,5 @@
|
|
1
|
-
FROM ruby:2.
|
2
|
-
|
1
|
+
FROM ruby:2.7.3-alpine
|
2
|
+
LABEL maintainer="Ryan Schlesinger <ryan@outstand.com>"
|
3
3
|
|
4
4
|
RUN addgroup -S shipitron && \
|
5
5
|
adduser -S -G shipitron shipitron && \
|
@@ -8,7 +8,7 @@ RUN addgroup -S shipitron && \
|
|
8
8
|
|
9
9
|
RUN apk add --no-cache \
|
10
10
|
ca-certificates \
|
11
|
-
openssl \
|
11
|
+
openssl-dev \
|
12
12
|
tini \
|
13
13
|
su-exec \
|
14
14
|
build-base \
|
@@ -18,18 +18,41 @@ RUN apk add --no-cache \
|
|
18
18
|
bash \
|
19
19
|
curl \
|
20
20
|
wget \
|
21
|
-
jq
|
21
|
+
jq \
|
22
|
+
cmake
|
23
|
+
|
24
|
+
ENV ECR_CREDENTIAL_HELPER_VERSION 0.5.0
|
25
|
+
RUN cd /usr/local/bin && \
|
26
|
+
wget https://amazon-ecr-credential-helper-releases.s3.us-east-2.amazonaws.com/${ECR_CREDENTIAL_HELPER_VERSION}/linux-amd64/docker-credential-ecr-login && \
|
27
|
+
chmod +x docker-credential-ecr-login
|
28
|
+
|
29
|
+
ENV BUILDKIT_VERSION v0.8.3
|
30
|
+
RUN cd /usr/local/bin && \
|
31
|
+
wget -nv https://github.com/moby/buildkit/releases/download/${BUILDKIT_VERSION}/buildkit-${BUILDKIT_VERSION}.linux-amd64.tar.gz && \
|
32
|
+
tar --strip-components=1 -zxvf buildkit-${BUILDKIT_VERSION}.linux-amd64.tar.gz bin/buildctl && \
|
33
|
+
chmod +x buildctl && \
|
34
|
+
rm -f buildkit-${BUILDKIT_VERSION}.linux-amd64.tar.gz
|
35
|
+
|
36
|
+
USER shipitron
|
37
|
+
ENV BUILDX_VERSION v0.5.1
|
38
|
+
RUN cd /home/shipitron && \
|
39
|
+
wget -nv https://github.com/docker/buildx/releases/download/${BUILDX_VERSION}/buildx-${BUILDX_VERSION}.linux-amd64 && \
|
40
|
+
mkdir -p ~/.docker/cli-plugins && \
|
41
|
+
mv buildx-${BUILDX_VERSION}.linux-amd64 ~/.docker/cli-plugins/docker-buildx && \
|
42
|
+
chmod a+x ~/.docker/cli-plugins/docker-buildx
|
43
|
+
|
44
|
+
USER root
|
22
45
|
|
23
46
|
WORKDIR /app
|
24
47
|
|
25
|
-
ENV SHIPITRON_VERSION=1.
|
48
|
+
ENV SHIPITRON_VERSION=1.4.0
|
26
49
|
|
27
50
|
RUN gem install shipitron -v ${SHIPITRON_VERSION} && \
|
28
51
|
mkdir -p /home/shipitron/.ssh && \
|
29
52
|
chown shipitron:shipitron /home/shipitron/.ssh && \
|
30
53
|
chmod 700 /home/shipitron/.ssh
|
31
54
|
|
32
|
-
COPY scripts/
|
55
|
+
COPY scripts/release-entrypoint.sh /docker-entrypoint.sh
|
33
56
|
|
34
57
|
ENTRYPOINT ["/sbin/tini", "-g", "--", "/docker-entrypoint.sh"]
|
35
58
|
CMD ["help"]
|
data/Dockerfile.staging
ADDED
@@ -0,0 +1,70 @@
|
|
1
|
+
FROM ruby:2.7.3-alpine
|
2
|
+
LABEL maintainer="Ryan Schlesinger <ryan@outstand.com>"
|
3
|
+
|
4
|
+
RUN addgroup -S shipitron && \
|
5
|
+
adduser -S -G shipitron shipitron && \
|
6
|
+
addgroup -g 1101 docker && \
|
7
|
+
addgroup shipitron docker
|
8
|
+
|
9
|
+
RUN apk add --no-cache \
|
10
|
+
ca-certificates \
|
11
|
+
openssl-dev \
|
12
|
+
tini \
|
13
|
+
su-exec \
|
14
|
+
build-base \
|
15
|
+
git \
|
16
|
+
git-lfs \
|
17
|
+
openssh-client \
|
18
|
+
perl \
|
19
|
+
bash \
|
20
|
+
curl \
|
21
|
+
wget \
|
22
|
+
jq \
|
23
|
+
cmake
|
24
|
+
|
25
|
+
ENV ECR_CREDENTIAL_HELPER_VERSION 0.5.0
|
26
|
+
RUN cd /usr/local/bin && \
|
27
|
+
wget https://amazon-ecr-credential-helper-releases.s3.us-east-2.amazonaws.com/${ECR_CREDENTIAL_HELPER_VERSION}/linux-amd64/docker-credential-ecr-login && \
|
28
|
+
chmod +x docker-credential-ecr-login
|
29
|
+
|
30
|
+
ENV BUILDKIT_VERSION v0.8.3
|
31
|
+
RUN cd /usr/local/bin && \
|
32
|
+
wget -nv https://github.com/moby/buildkit/releases/download/${BUILDKIT_VERSION}/buildkit-${BUILDKIT_VERSION}.linux-amd64.tar.gz && \
|
33
|
+
tar --strip-components=1 -zxvf buildkit-${BUILDKIT_VERSION}.linux-amd64.tar.gz bin/buildctl && \
|
34
|
+
chmod +x buildctl && \
|
35
|
+
rm -f buildkit-${BUILDKIT_VERSION}.linux-amd64.tar.gz
|
36
|
+
|
37
|
+
USER shipitron
|
38
|
+
ENV BUILDX_VERSION v0.5.1
|
39
|
+
RUN cd /home/shipitron && \
|
40
|
+
wget -nv https://github.com/docker/buildx/releases/download/${BUILDX_VERSION}/buildx-${BUILDX_VERSION}.linux-amd64 && \
|
41
|
+
mkdir -p ~/.docker/cli-plugins && \
|
42
|
+
mv buildx-${BUILDX_VERSION}.linux-amd64 ~/.docker/cli-plugins/docker-buildx && \
|
43
|
+
chmod a+x ~/.docker/cli-plugins/docker-buildx
|
44
|
+
|
45
|
+
USER root
|
46
|
+
ENV USE_BUNDLE_EXEC true
|
47
|
+
ENV BUNDLE_GEMFILE /shipitron/Gemfile
|
48
|
+
|
49
|
+
ENV BUNDLER_VERSION 2.2.21
|
50
|
+
RUN gem install bundler -v ${BUNDLER_VERSION} -i /usr/local/lib/ruby/gems/$(ls /usr/local/lib/ruby/gems) --force
|
51
|
+
|
52
|
+
WORKDIR /shipitron
|
53
|
+
COPY Gemfile shipitron.gemspec /shipitron/
|
54
|
+
COPY lib/shipitron/version.rb /shipitron/lib/shipitron/
|
55
|
+
COPY exe/shipitron /shipitron/exe/shipitron
|
56
|
+
COPY .git/ /shipitron/
|
57
|
+
|
58
|
+
RUN bundle install
|
59
|
+
|
60
|
+
COPY . /shipitron/
|
61
|
+
RUN mkdir -p /home/shipitron/.ssh && \
|
62
|
+
chown shipitron:shipitron /home/shipitron/.ssh && \
|
63
|
+
chmod 700 /home/shipitron/.ssh
|
64
|
+
|
65
|
+
WORKDIR /app
|
66
|
+
|
67
|
+
COPY scripts/release-entrypoint.sh /docker-entrypoint.sh
|
68
|
+
|
69
|
+
ENTRYPOINT ["/sbin/tini", "-g", "--", "/docker-entrypoint.sh"]
|
70
|
+
CMD ["help"]
|
data/Gemfile
CHANGED
data/README.md
CHANGED
@@ -31,27 +31,65 @@ applications:
|
|
31
31
|
- Add deploy ref key to `shipitron/<app name>/deploy_ref_key`
|
32
32
|
- `docker run -it --rm -v shipitron.yml:/shipitron/config/shipitron.yml outstand/shipitron:<version> deploy <app>`
|
33
33
|
|
34
|
+
### New shipitron config file keys:
|
35
|
+
|
36
|
+
- registry (specifies an alternate docker registry):
|
37
|
+
```yaml
|
38
|
+
---
|
39
|
+
applications:
|
40
|
+
foobar:
|
41
|
+
registry: 12345.dkr.ecr.us-east-1.amazonaws.com
|
42
|
+
```
|
43
|
+
|
44
|
+
- skip_push (shipitron will skip pushing the docker images; use if the build script takes care of this):
|
45
|
+
```yaml
|
46
|
+
---
|
47
|
+
applications:
|
48
|
+
foobar:
|
49
|
+
skip_push: true
|
50
|
+
```
|
51
|
+
Additionally, the build script will receive the named tag in use as `$2`.
|
52
|
+
|
53
|
+
### Containerized tool support
|
54
|
+
Shipitron now supports starting other containers as part of the build process. We're using this to use the aws cli to transfer files to/from s3. Shipitron's task definition needs to have a task scoped docker volume added with the name `shipitron-home`. This volume will be mounted at `/home/shipitron` and should be shared with any new containers:
|
55
|
+
|
56
|
+
```
|
57
|
+
shipitron_home_volume = FindDockerVolumeName.call!(
|
58
|
+
container_name: 'shipitron',
|
59
|
+
volume_search: /shipitron-home/
|
60
|
+
).volume_name
|
61
|
+
|
62
|
+
docker run ... -v #{shipitron_home_volume}:/home/shipitron ...
|
63
|
+
```
|
64
|
+
|
65
|
+
This allows the containers to share data with each other. ECS will automatically clean up the task scoped container.
|
66
|
+
|
67
|
+
If a containerized tool requires access to AWS resources, be sure to pass the `AWS_CONTAINER_CREDENTIALS_RELATIVE_URI` to it so it can inherit any task roles.
|
68
|
+
|
34
69
|
## Development
|
35
70
|
|
36
|
-
- `
|
37
|
-
-
|
38
|
-
- `
|
39
|
-
-
|
40
|
-
- `
|
41
|
-
- `
|
42
|
-
- `
|
71
|
+
- `desk go`
|
72
|
+
- `dev build --pull shipitron`
|
73
|
+
- `rspec specs` to run specs
|
74
|
+
- Set the application path in the volumes section in `docker-compose.yml`.
|
75
|
+
- `shipitron deploy <app>` to run client side
|
76
|
+
- `shipitron deploy <app> --simulate-store-deploy` to save the deploy options to S3 and generate deploy id
|
77
|
+
- `dev run --rm -v /bin/docker:/bin/docker -v /var/run/docker.sock:/var/run/docker.sock shipitron server_deploy --deploy-id <deploy_id>` to run server side
|
43
78
|
|
44
79
|
Running a dev version in production:
|
45
|
-
- `
|
46
|
-
-
|
47
|
-
- `docker
|
80
|
+
- Ensure `SHIPITRON_STARTED_BY` env var is set for your `shipitron-staging` task def
|
81
|
+
- `docker build --pull -t outstand/shipitron:staging -f Dockerfile.staging .`
|
82
|
+
- `docker push outstand/shipitron:staging`
|
83
|
+
- Update config to use `shipitron_task: shipitron-staging` and `outstand/shipitron:staging`
|
84
|
+
- `shipitron deploy <app> --debug`
|
48
85
|
|
49
86
|
To release a new version:
|
50
87
|
- Update the version number in `version.rb` and `Dockerfile.release` and commit the result.
|
51
|
-
-
|
52
|
-
- `
|
53
|
-
- `
|
54
|
-
- `docker
|
55
|
-
- `docker
|
88
|
+
- `dev build --pull shipitron`
|
89
|
+
- `release_gem`
|
90
|
+
- `VERSION=<version>`
|
91
|
+
- `docker build -t outstand/shipitron:$VERSION -f Dockerfile.release .`
|
92
|
+
- `docker push outstand/shipitron:$VERSION`
|
93
|
+
- `docker tag outstand/shipitron:$VERSION outstand/shipitron:latest`
|
56
94
|
- `docker push outstand/shipitron:latest`
|
57
95
|
- Update ECS task definition with new version
|