fpm-fry 0.6.2 → 0.7.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/lib/fpm/fry/client.rb +3 -1
- data/lib/fpm/fry/command/cook.rb +23 -8
- data/lib/fpm/fry/command.rb +1 -1
- data/lib/fpm/fry/source/git.rb +1 -1
- data/lib/fpm/fry/source/patched.rb +1 -1
- metadata +6 -6
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 40cca764e11751a11f15254d74ab7324d02adf9b6d2852822baaeb668600c5e2
|
4
|
+
data.tar.gz: d017698f4fae8e13f33eb99ddbd7bef77d8e6cdd9e3b0d57b1bb4082b5d21164
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 250eac98d2fce4db0ea393a4eaea6108df9b05dd40f1770acd56e74cd5456b615ceffc34a6097b1d9d607fe59508586f17e2f24f44e88893203b16c8d4d9d1fc
|
7
|
+
data.tar.gz: ca3d321f4ec3fd487cff204530a7831ec92641d726ce68a1a304e13a402cd8534cb6f9bcd3eff6cf9da2f2c8850898237797e007153c0a1125de6b9d53d381a2
|
data/lib/fpm/fry/client.rb
CHANGED
@@ -44,7 +44,7 @@ class FPM::Fry::Client
|
|
44
44
|
ssl_verify_peer: options.fetch(:tlsverify){ false }
|
45
45
|
}
|
46
46
|
[:client_cert, :client_key, :ssl_ca_file].each do |k|
|
47
|
-
if !File.
|
47
|
+
if !File.exist?(@tls[k])
|
48
48
|
raise ArgumentError.new("#{k} #{@tls[k]} doesn't exist. Did you set DOCKER_CERT_PATH correctly?")
|
49
49
|
end
|
50
50
|
end
|
@@ -228,6 +228,8 @@ class FPM::Fry::Client
|
|
228
228
|
when 'unix'
|
229
229
|
uri = "unix:///"
|
230
230
|
options[:socket] = address
|
231
|
+
options[:host] = ""
|
232
|
+
options[:hostname] = ""
|
231
233
|
when 'tcp'
|
232
234
|
if tls.any?
|
233
235
|
return agent_for("https://#{address}", tls)
|
data/lib/fpm/fry/command/cook.rb
CHANGED
@@ -5,9 +5,10 @@ module FPM; module Fry
|
|
5
5
|
option '--keep', :flag, 'Keep the container after build'
|
6
6
|
option '--overwrite', :flag, 'Overwrite package', default: true
|
7
7
|
option '--verbose', :fag, 'Verbose output', default: false
|
8
|
+
option '--platform', 'PLATFORM', default: nil
|
8
9
|
|
9
10
|
UPDATE_VALUES = ['auto','never','always']
|
10
|
-
option '--update',"<#{UPDATE_VALUES.join('|')}>", 'Update image before installing packages ( only apt currently )',attribute_name: 'update', default: 'auto' do |value|
|
11
|
+
option '--update',"<#{UPDATE_VALUES.join('|')}>", 'Update image before installing packages ( only apt currently )', attribute_name: 'update', default: 'auto' do |value|
|
11
12
|
if !UPDATE_VALUES.include? value
|
12
13
|
raise "Unknown value for --update: #{value.inspect}\nPossible values are #{UPDATE_VALUES.join(', ')}"
|
13
14
|
else
|
@@ -80,7 +81,7 @@ module FPM; module Fry
|
|
80
81
|
end
|
81
82
|
|
82
83
|
def lint_recipe_file!
|
83
|
-
File.
|
84
|
+
File.exist?(recipe) || raise(Recipe::NotFound)
|
84
85
|
end
|
85
86
|
|
86
87
|
def lint_recipe!
|
@@ -124,11 +125,14 @@ module FPM; module Fry
|
|
124
125
|
if res.status == 404
|
125
126
|
df = DockerFile::Source.new(builder.variables.merge(image: image_id),cache)
|
126
127
|
begin
|
127
|
-
url = client.url("build
|
128
|
+
url = client.url("build")
|
129
|
+
query = { rm: 1, dockerfile: DockerFile::NAME, t: cachetag }
|
130
|
+
query[:platform] = platform if platform
|
128
131
|
client.post(
|
129
132
|
headers: {
|
130
133
|
'Content-Type'=>'application/tar'
|
131
134
|
},
|
135
|
+
query: query,
|
132
136
|
expects: [200],
|
133
137
|
path: url,
|
134
138
|
request_block: BlockEnumerator.new(df.tar_io)
|
@@ -145,11 +149,14 @@ module FPM; module Fry
|
|
145
149
|
df = DockerFile::Build.new(cachetag, builder.variables.dup,builder.recipe, update: update?)
|
146
150
|
parser = BuildOutputParser.new(out)
|
147
151
|
begin
|
148
|
-
url = client.url("build
|
152
|
+
url = client.url("build")
|
153
|
+
query = { rm: 1, dockerfile: DockerFile::NAME}
|
154
|
+
query[:platform] = platform if platform
|
149
155
|
res = client.post(
|
150
156
|
headers: {
|
151
157
|
'Content-Type'=>'application/tar'
|
152
158
|
},
|
159
|
+
query: query,
|
153
160
|
expects: [200],
|
154
161
|
path: url,
|
155
162
|
request_block: BlockEnumerator.new(df.tar_io),
|
@@ -198,14 +205,16 @@ module FPM; module Fry
|
|
198
205
|
def build!
|
199
206
|
body = begin
|
200
207
|
url = client.url('containers','create')
|
201
|
-
|
208
|
+
args = {
|
202
209
|
headers: {
|
203
210
|
'Content-Type' => 'application/json'
|
204
211
|
},
|
205
212
|
path: url,
|
206
213
|
expects: [201],
|
207
214
|
body: JSON.generate({"Image" => build_image})
|
208
|
-
|
215
|
+
}
|
216
|
+
args[:query] = { platform: platform } if platform
|
217
|
+
res = client.post(args)
|
209
218
|
JSON.parse(res.body)
|
210
219
|
rescue Excon::Error
|
211
220
|
logger.error "could not create #{build_image}, url: #{url}"
|
@@ -274,7 +283,7 @@ module FPM; module Fry
|
|
274
283
|
logger: logger,
|
275
284
|
client: client,
|
276
285
|
keep_modified_files: builder.keep_modified_files,
|
277
|
-
verbose: verbose
|
286
|
+
verbose: verbose,
|
278
287
|
)
|
279
288
|
builder.recipe.apply_input(input)
|
280
289
|
begin
|
@@ -331,6 +340,7 @@ module FPM; module Fry
|
|
331
340
|
|
332
341
|
out_map.each do |output, package|
|
333
342
|
package.apply_output(output)
|
343
|
+
adjust_package_architecture(output)
|
334
344
|
adjust_package_settings(output)
|
335
345
|
adjust_config_files(output)
|
336
346
|
end
|
@@ -348,6 +358,11 @@ module FPM; module Fry
|
|
348
358
|
|
349
359
|
end
|
350
360
|
|
361
|
+
def adjust_package_architecture(output)
|
362
|
+
# strip prefix and only use the architecture part
|
363
|
+
output.architecture = platform.split("/").last if platform
|
364
|
+
end
|
365
|
+
|
351
366
|
def adjust_package_settings( output )
|
352
367
|
# FPM ignores the file permissions on rpm packages.
|
353
368
|
output.attributes[:rpm_use_file_permissions?] = true
|
@@ -368,7 +383,7 @@ module FPM; module Fry
|
|
368
383
|
# Now that we have disabled this for debian we have to reenable if it for
|
369
384
|
# all.
|
370
385
|
etc = File.expand_path('etc', output.staging_path)
|
371
|
-
if File.
|
386
|
+
if File.exist?( etc )
|
372
387
|
# Config plugin wasn't used. Add everything under /etc
|
373
388
|
prefix_length = output.staging_path.size + 1
|
374
389
|
added = []
|
data/lib/fpm/fry/command.rb
CHANGED
@@ -12,7 +12,7 @@ module FPM; module Fry
|
|
12
12
|
|
13
13
|
option '--debug', :flag, 'Turns on debugging'
|
14
14
|
option '--[no-]tls', :flag, 'Turns on tls ( default is false for schema unix, tcp and http and true for https )'
|
15
|
-
option '--[no-]tlsverify', :flag, 'Turns off tls peer verification', default:true, environment_variable: 'DOCKER_TLS_VERIFY'
|
15
|
+
option '--[no-]tlsverify', :flag, 'Turns off tls peer verification', default: true, environment_variable: 'DOCKER_TLS_VERIFY'
|
16
16
|
option ["-t", "--tmpdir"], "PATH", 'Write tmp data to PATH', default: '/tmp/fpm-fry', attribute_name: :dir do |s|
|
17
17
|
String(s)
|
18
18
|
end
|
data/lib/fpm/fry/source/git.rb
CHANGED
@@ -72,7 +72,7 @@ module FPM; module Fry ; module Source
|
|
72
72
|
|
73
73
|
def update
|
74
74
|
begin
|
75
|
-
if !File.
|
75
|
+
if !File.exist? repodir
|
76
76
|
Exec::exec(package.git, "--git-dir=#{repodir}",'init', '--bare', description: "initializing git repository", logger: logger)
|
77
77
|
end
|
78
78
|
Exec::exec(package.git, "--git-dir=#{repodir}",'fetch','--depth=1', url.to_s, rev, description: 'fetching from remote', logger: logger)
|
@@ -118,7 +118,7 @@ module FPM; module Fry ; module Source
|
|
118
118
|
raise ArgumentError, "Expected a Hash or a String, got #{file.inspect}"
|
119
119
|
end
|
120
120
|
options[:file] = File.expand_path(options[:file])
|
121
|
-
if !File.
|
121
|
+
if !File.exist?(options[:file])
|
122
122
|
raise ArgumentError, "File doesn't exist: #{options[:file]}"
|
123
123
|
end
|
124
124
|
options
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: fpm-fry
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.7.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Maxime Lagresle
|
@@ -10,10 +10,10 @@ authors:
|
|
10
10
|
- Hannes Georg
|
11
11
|
- Julian Tabel
|
12
12
|
- Dennis Konert
|
13
|
-
autorequire:
|
13
|
+
autorequire:
|
14
14
|
bindir: bin
|
15
15
|
cert_chain: []
|
16
|
-
date: 2023-
|
16
|
+
date: 2023-06-13 00:00:00.000000000 Z
|
17
17
|
dependencies:
|
18
18
|
- !ruby/object:Gem::Dependency
|
19
19
|
name: excon
|
@@ -182,7 +182,7 @@ homepage: https://github.com/xing/fpm-fry
|
|
182
182
|
licenses:
|
183
183
|
- MIT
|
184
184
|
metadata: {}
|
185
|
-
post_install_message:
|
185
|
+
post_install_message:
|
186
186
|
rdoc_options: []
|
187
187
|
require_paths:
|
188
188
|
- lib
|
@@ -197,8 +197,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
197
197
|
- !ruby/object:Gem::Version
|
198
198
|
version: '0'
|
199
199
|
requirements: []
|
200
|
-
rubygems_version: 3.
|
201
|
-
signing_key:
|
200
|
+
rubygems_version: 3.4.10
|
201
|
+
signing_key:
|
202
202
|
specification_version: 4
|
203
203
|
summary: FPM Fry
|
204
204
|
test_files: []
|