donce 0.3.0 → 0.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 441d95b36d07ea59d9d3bb2adac79fda0391c241ecb7d6c100aea5f62552dcba
4
- data.tar.gz: 7cc6a4122c5eebe172e65b8d71cd262f11ac2325786567a87ee5cbf50e9a38c5
3
+ metadata.gz: e7ba4eef3f8cae9725b0919d93c200393d552c88688b8b448c9f2960a0dae2a9
4
+ data.tar.gz: 3383251951e61584d0ced59f93a421f73f68da0ace2ca9eda40f0cc701e415fb
5
5
  SHA512:
6
- metadata.gz: 80e61fec77d8d68d588bd5600150648eb77a5e35513137badcd0dcb6b45c0f2f7968ddc13b345407ebe6c32d9bc557769ac5dce61ea165661a24bd366d9c44d9
7
- data.tar.gz: 4dd1618e4247936efc4dc6d15ae3397c655aedafa74555a7353df6a241a2ae0fc4292e676dc7889161c7ee6a4fc07cfc33921f1905ea3e3cd6b740f17b2df3a8
6
+ metadata.gz: 071de606e7dde5336605819b229e83e3de1812109448fe647f95460e02a9129c16f2eacd240e06d796cfcbddedeb6d1cf8be7b6755fbfef00d2aa85127ec9b60
7
+ data.tar.gz: 4b522e4e6fdfd8f211d18834211983b5c0b95e2433c697d7834f92a153d32942b5fa8a97c398026195247eb2b8599526af0e8788c722a1dab8936993bbd075e8
data/Gemfile CHANGED
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- # SPDX-FileCopyrightText: Copyright (c) 2024-2025 Yegor Bugayenko
3
+ # SPDX-FileCopyrightText: Copyright (c) 2024-2026 Yegor Bugayenko
4
4
  # SPDX-License-Identifier: MIT
5
5
 
6
6
  source 'https://rubygems.org'
data/Gemfile.lock CHANGED
@@ -43,7 +43,7 @@ GEM
43
43
  psych (5.3.1)
44
44
  date
45
45
  stringio
46
- qbash (0.4.8)
46
+ qbash (0.5.0)
47
47
  backtrace (> 0)
48
48
  elapsed (> 0)
49
49
  loog (> 0)
data/LICENSE.txt CHANGED
@@ -1,6 +1,6 @@
1
1
  (The MIT License)
2
2
 
3
- Copyright (c) 2024-2025 Yegor Bugayenko
3
+ Copyright (c) 2024-2026 Yegor Bugayenko
4
4
 
5
5
  Permission is hereby granted, free of charge, to any person obtaining a copy
6
6
  of this software and associated documentation files (the 'Software'), to deal
data/LICENSES/MIT.txt CHANGED
@@ -1,6 +1,6 @@
1
1
  (The MIT License)
2
2
 
3
- Copyright (c) 2024-2025 Yegor Bugayenko
3
+ Copyright (c) 2024-2026 Yegor Bugayenko
4
4
 
5
5
  Permission is hereby granted, free of charge, to any person obtaining a copy
6
6
  of this software and associated documentation files (the 'Software'), to deal
data/README.md CHANGED
@@ -38,8 +38,24 @@ stdout = donce(image: 'ubuntu', command: 'sleep 9999') do |id|
38
38
  end
39
39
  ```
40
40
 
41
- If you set `DONCE_SUDO` environment variable to `true`, `docker` will
42
- be executed via `sudo`.
41
+ If you set `DONCE_SUDO` environment variable to `true`,
42
+ `docker` will be executed via `sudo`.
43
+
44
+ Host group/user IDs are passed to the build, as `GID` and `UID` args.
45
+ You can use them, when you copy resources into the image, for example:
46
+
47
+ ```
48
+ FROM ubuntu
49
+ ARG UID
50
+ ARG GID
51
+ RUN groupadd -g ${GID} foo || true
52
+ RUN useradd -m -u ${UID} -g ${GID} foo
53
+ USER foo',
54
+ WORKDIR /foo
55
+ COPY --chown=${UID}:${GID} bar.txt .
56
+ ```
57
+
58
+ The `bar.txt` file is not ready to be modified inside the container.
43
59
 
44
60
  ## Parameters
45
61
 
data/REUSE.toml CHANGED
@@ -1,4 +1,4 @@
1
- # SPDX-FileCopyrightText: Copyright (c) 2024-2025 Yegor Bugayenko
1
+ # SPDX-FileCopyrightText: Copyright (c) 2024-2026 Yegor Bugayenko
2
2
  # SPDX-License-Identifier: MIT
3
3
 
4
4
  version = 1
@@ -31,5 +31,5 @@ path = [
31
31
  "renovate.json",
32
32
  ]
33
33
  precedence = "override"
34
- SPDX-FileCopyrightText = "Copyright (c) 2024-2025 Yegor Bugayenko"
34
+ SPDX-FileCopyrightText = "Copyright (c) 2024-2026 Yegor Bugayenko"
35
35
  SPDX-License-Identifier = "MIT"
data/Rakefile CHANGED
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- # SPDX-FileCopyrightText: Copyright (c) 2024-2025 Yegor Bugayenko
3
+ # SPDX-FileCopyrightText: Copyright (c) 2024-2026 Yegor Bugayenko
4
4
  # SPDX-License-Identifier: MIT
5
5
 
6
6
  require 'rubygems'
data/donce.gemspec CHANGED
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- # SPDX-FileCopyrightText: Copyright (c) 2024-2025 Yegor Bugayenko
3
+ # SPDX-FileCopyrightText: Copyright (c) 2024-2026 Yegor Bugayenko
4
4
  # SPDX-License-Identifier: MIT
5
5
 
6
6
  require 'English'
@@ -9,7 +9,7 @@ Gem::Specification.new do |s|
9
9
  s.required_rubygems_version = Gem::Requirement.new('>= 0') if s.respond_to? :required_rubygems_version=
10
10
  s.required_ruby_version = '>=3.0'
11
11
  s.name = 'donce'
12
- s.version = '0.3.0'
12
+ s.version = '0.4.0'
13
13
  s.license = 'MIT'
14
14
  s.summary = 'Builds and starts temporary Docker containers'
15
15
  s.description =
data/lib/donce.rb CHANGED
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- # SPDX-FileCopyrightText: Copyright (c) 2024-2025 Yegor Bugayenko
3
+ # SPDX-FileCopyrightText: Copyright (c) 2024-2026 Yegor Bugayenko
4
4
  # SPDX-License-Identifier: MIT
5
5
 
6
6
  require 'logger'
@@ -42,7 +42,7 @@ require 'tmpdir'
42
42
  # variable to any value.
43
43
  #
44
44
  # Author:: Yegor Bugayenko (yegor256@gmail.com)
45
- # Copyright:: Copyright (c) 2024-2025 Yegor Bugayenko
45
+ # Copyright:: Copyright (c) 2024-2026 Yegor Bugayenko
46
46
  # License:: MIT
47
47
  module Kernel
48
48
  # The name of the localhost inside Docker container.
@@ -102,7 +102,9 @@ module Kernel
102
102
  i = "donce-#{SecureRandom.hex(6)}"
103
103
  a = [
104
104
  "--tag #{i}",
105
- build_args.map { |k, v| "--build-arg #{Shellwords.escape("#{k}=#{v}")}" }.join(' ')
105
+ build_args.merge({ GID: Process.gid, UID: Process.uid }).map do |k, v|
106
+ "--build-arg #{Shellwords.escape("#{k}=#{v}")}"
107
+ end.join(' ')
106
108
  ].compact.join(' ')
107
109
  if dockerfile
108
110
  Dir.mktmpdir do |tmp|
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: donce
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.0
4
+ version: 0.4.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Yegor Bugayenko