boxing 0.7.2 → 0.9.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/Gemfile.lock +1 -1
- data/README.md +18 -1
- data/lib/boxing/config.rb +4 -2
- data/lib/boxing/context.rb +26 -0
- data/lib/boxing/version.rb +1 -1
- data/templates/Dockerfile.tt +23 -17
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: cc711842897fe99033eddd84096476da91f3e8978932f1b7e6ad81c92e58d6a8
|
4
|
+
data.tar.gz: aa5a956bdaefd0aad083eb1d953850692110c87ce1b7feebdd7a0bf9b1b0437b
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 4ec68e4a79a4c7143c7cb5c627a066fcb358752e6d1a070f76da6ceda516ee4d3c684505bafeac107d3dd83b68bed3d24b4d44e9a489ce716a2832da89c3afea
|
7
|
+
data.tar.gz: afcafc86d6cd2bf263982da25245ba29eb97c9bc7957da8c2a3b01a72e03bef095c94060c565d79ace96cc62b0edec7e644315ea7128ceffc3791e6666751d86
|
data/Gemfile.lock
CHANGED
data/README.md
CHANGED
@@ -109,6 +109,24 @@ Boxing.config do |c|
|
|
109
109
|
end
|
110
110
|
```
|
111
111
|
|
112
|
+
### Revision Information
|
113
|
+
|
114
|
+
```ruby
|
115
|
+
Boxing.config do |c|
|
116
|
+
c.revision = true
|
117
|
+
end
|
118
|
+
```
|
119
|
+
> When building the image, you have to add `--build-arg REVISION=...` to set your revision name to compile it correctly.
|
120
|
+
|
121
|
+
### Sentry Support
|
122
|
+
|
123
|
+
```ruby
|
124
|
+
Boxing.config do |c|
|
125
|
+
c.sentry_release = true
|
126
|
+
end
|
127
|
+
```
|
128
|
+
> When building the image, you have to add `--build-arg SENTRY_RELEASE=...` to set your release name to compile it correctly.
|
129
|
+
|
112
130
|
### Assets Precompile
|
113
131
|
|
114
132
|
This feature is disabled by default and suggest to use CI to build it.
|
@@ -120,7 +138,6 @@ Boxing.config do |c|
|
|
120
138
|
c.node_version = '14.18'
|
121
139
|
end
|
122
140
|
```
|
123
|
-
|
124
141
|
> When building the image, you have to add `--build-arg RAILS_MASTER_KEY=...` to set your production key to compile it correctly.
|
125
142
|
|
126
143
|
### Health Check
|
data/lib/boxing/config.rb
CHANGED
@@ -12,12 +12,14 @@ module Boxing
|
|
12
12
|
attr_accessor :root, :name, :registry, :ignores, :port,
|
13
13
|
:health_check, :health_check_path,
|
14
14
|
:assets_precompile, :node_version,
|
15
|
-
:build_packages, :runtime_packages
|
15
|
+
:build_packages, :runtime_packages,
|
16
|
+
:revision, :sentry_release,
|
17
|
+
:entrypoint, :command
|
16
18
|
|
17
19
|
# @since 0.5.0
|
18
20
|
def initialize(&block)
|
19
21
|
@name = 'myapp'
|
20
|
-
@root = '/
|
22
|
+
@root = '/src/app'
|
21
23
|
@port = 9292
|
22
24
|
@health_check_path = '/status'
|
23
25
|
@assets_precompile = false
|
data/lib/boxing/context.rb
CHANGED
@@ -115,5 +115,31 @@ module Boxing
|
|
115
115
|
mode |= Package::RUNTIME if config.runtime_packages&.include?(name)
|
116
116
|
mode
|
117
117
|
end
|
118
|
+
|
119
|
+
# Return entrypoint options
|
120
|
+
#
|
121
|
+
# @return [Array<String>]
|
122
|
+
#
|
123
|
+
# @since 0.9.0
|
124
|
+
def entrypoint
|
125
|
+
return config.entrypoint.map(&:to_s) if config.entrypoint
|
126
|
+
return ['bin/openbox'] if has?('openbox')
|
127
|
+
return ['bin/rails'] if has?('rails')
|
128
|
+
|
129
|
+
%w[bundle exec]
|
130
|
+
end
|
131
|
+
|
132
|
+
# Return command options
|
133
|
+
#
|
134
|
+
# @return [Array<String>]
|
135
|
+
#
|
136
|
+
# @since 0.9.0
|
137
|
+
def command
|
138
|
+
return config.command.map(&:to_s) if config.command
|
139
|
+
return ['server'] if has?('openbox')
|
140
|
+
return ['server', '-b', '0.0.0.0'] if has?('rails')
|
141
|
+
|
142
|
+
['rackup', '-o', '0.0.0.0']
|
143
|
+
end
|
118
144
|
end
|
119
145
|
end
|
data/lib/boxing/version.rb
CHANGED
data/templates/Dockerfile.tt
CHANGED
@@ -2,7 +2,7 @@ ARG APP_ROOT=<%= config.root %>
|
|
2
2
|
ARG RUBY_VERSION=<%= RUBY_VERSION %>
|
3
3
|
<%- if config.assets_precompile -%>ARG NODE_VERSION=<%= node_version %><%- end -%>
|
4
4
|
|
5
|
-
FROM ruby:${RUBY_VERSION}-alpine AS
|
5
|
+
FROM ruby:${RUBY_VERSION}-alpine AS base
|
6
6
|
ARG APP_ROOT
|
7
7
|
|
8
8
|
RUN apk add --no-cache <%= packages.select(&:build?).join(' ') %>
|
@@ -22,6 +22,10 @@ RUN gem install bundler:<%= Bundler::VERSION %> \
|
|
22
22
|
&& find ${APP_ROOT}/vendor/bundle -type f -name '*.o' -delete \
|
23
23
|
&& find ${APP_ROOT}/vendor/bundle -type f -name '*.gem' -delete
|
24
24
|
|
25
|
+
<%- if has?('bootsnap') -%>
|
26
|
+
RUN bundle exec bootsnap precompile --gemfile app/ lib/
|
27
|
+
|
28
|
+
<%- end -%>
|
25
29
|
<%- if config.assets_precompile -%>
|
26
30
|
FROM node:${NODE_VERSION}-alpine as node
|
27
31
|
FROM ruby:${RUBY_VERSION}-alpine as assets
|
@@ -36,9 +40,9 @@ RUN apk add --no-cache <%= packages.select(&:runtime?).join(' ') %> yarn
|
|
36
40
|
<%- end -%>
|
37
41
|
COPY --from=node /usr/local/bin/node /usr/local/bin/node
|
38
42
|
|
39
|
-
COPY --from=
|
40
|
-
COPY --from=
|
41
|
-
COPY --from=
|
43
|
+
COPY --from=base /usr/local/bundle/config /usr/local/bundle/config
|
44
|
+
COPY --from=base /usr/local/bundle /usr/local/bundle
|
45
|
+
COPY --from=base ${APP_ROOT}/vendor/bundle ${APP_ROOT}/vendor/bundle
|
42
46
|
|
43
47
|
RUN mkdir -p ${APP_ROOT}
|
44
48
|
COPY . ${APP_ROOT}
|
@@ -55,10 +59,13 @@ ARG APP_ROOT
|
|
55
59
|
RUN apk add --no-cache <%= packages.select(&:runtime?).join(' ') %>
|
56
60
|
|
57
61
|
<%- end -%>
|
58
|
-
COPY --from=
|
59
|
-
COPY --from=
|
60
|
-
COPY --from=
|
62
|
+
COPY --from=base /usr/local/bundle/config /usr/local/bundle/config
|
63
|
+
COPY --from=base /usr/local/bundle /usr/local/bundle
|
64
|
+
COPY --from=base ${APP_ROOT}/vendor/bundle ${APP_ROOT}/vendor/bundle
|
65
|
+
<%- if has?('bootsnap') -%>
|
66
|
+
COPY --from=base ${APP_ROOT}/tmp/cache ${APP_ROOT}/tmp/cache
|
61
67
|
|
68
|
+
<%- end -%>
|
62
69
|
RUN mkdir -p ${APP_ROOT}
|
63
70
|
|
64
71
|
<%- if has?('rails') -%>
|
@@ -71,11 +78,18 @@ ENV APP_ROOT=$APP_ROOT
|
|
71
78
|
COPY . ${APP_ROOT}
|
72
79
|
<%- if config.assets_precompile -%>COPY --from=assets /${APP_ROOT}/public /${APP_ROOT}/public
|
73
80
|
<%- end -%>
|
81
|
+
<%- if config.revision -%>
|
74
82
|
|
75
83
|
ARG REVISION
|
76
84
|
ENV REVISION $REVISION
|
77
85
|
ENV COMMIT_SHORT_SHA $REVISION
|
78
86
|
RUN echo "${REVISION}" > ${APP_ROOT}/REVISION
|
87
|
+
<%- end -%>
|
88
|
+
<%- if config.sentry_release -%>
|
89
|
+
|
90
|
+
ARG SENTRY_RELEASE
|
91
|
+
ENV SENTRY_RELEASE $SENTRY_RELEASE
|
92
|
+
<%- end -%>
|
79
93
|
|
80
94
|
# Apply Execute Permission
|
81
95
|
RUN adduser -h ${APP_ROOT} -D -s /bin/nologin ruby ruby && \
|
@@ -93,13 +107,5 @@ EXPOSE <%= config.port %>
|
|
93
107
|
<%- if has?('liveness') || config.health_check -%>
|
94
108
|
HEALTHCHECK CMD curl -f http://localhost:<%= config.port %><%= config.health_check_path %> || exit 1
|
95
109
|
<%- end -%>
|
96
|
-
|
97
|
-
|
98
|
-
CMD ["server"]
|
99
|
-
<%- elsif has?('rails') -%>
|
100
|
-
ENTRYPOINT ["bin/rails"]
|
101
|
-
CMD ["server", "-b", "0.0.0.0"]
|
102
|
-
<%- else -%>
|
103
|
-
ENTRYPOINT ["bundle", "exec"]
|
104
|
-
CMD ["rackup", "-o", "0.0.0.0"]
|
105
|
-
<%- end -%>
|
110
|
+
ENTRYPOINT <%= entrypoint %>
|
111
|
+
CMD <%= command %>
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: boxing
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.9.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- 蒼時弦也
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2022-
|
11
|
+
date: 2022-12-22 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|