shipitron 1.2.0 → 1.4.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/.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
|