ood_packaging 0.0.1.rc.5 → 0.0.1.rc.6
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/ood_packaging/build.rb +5 -0
- data/lib/ood_packaging/build_box/docker-image/Dockerfile.erb +1 -0
- data/lib/ood_packaging/build_box/docker-image/install.sh.erb +2 -2
- data/lib/ood_packaging/package.rb +1 -1
- data/lib/ood_packaging/utils.rb +4 -0
- data/lib/ood_packaging/version.rb +1 -1
- metadata +1 -5
- data/lib/tasks/package_utils.rb +0 -197
- data/lib/tasks/packaging.rb +0 -111
- data/lib/tasks/templates/Dockerfile.el.erb +0 -21
- data/lib/tasks/templates/Dockerfile.ubuntu.erb +0 -15
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 774e160312368cf79021df01d8aaf851b6f4efd7ef23890a2f02b4edb5cb6202
|
|
4
|
+
data.tar.gz: 4f169c7948828b5f870e2a0d7a05dc04f95c73b62b0fd40fe7260238c9a7417f
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: fe2cc99020a235d8cfa3caffb25e26f1ef23f8454d5278093780406e37d669e9f76af2f3c2a70cab350f9c75821f5f70fddc675563569fb0b8bc618d9e4d2758
|
|
7
|
+
data.tar.gz: 45ec1cc23b9cfdc63a2c47cb077ac153bae08facb4e5d7a5486d359c5f844dd5ac1b190d6fb33ba17f17cc3ab076fed9fc5e3b00246fb9c2f17c2ce003fb29dc
|
data/lib/ood_packaging/build.rb
CHANGED
|
@@ -130,6 +130,7 @@ class OodPackaging::Build
|
|
|
130
130
|
end
|
|
131
131
|
|
|
132
132
|
def run!
|
|
133
|
+
fix_env!
|
|
133
134
|
env_dump! if debug?
|
|
134
135
|
bootstrap_rpm! if build_box.rpm?
|
|
135
136
|
bootstrap_deb! if build_box.deb?
|
|
@@ -141,6 +142,10 @@ class OodPackaging::Build
|
|
|
141
142
|
sanity!
|
|
142
143
|
end
|
|
143
144
|
|
|
145
|
+
def fix_env!
|
|
146
|
+
ENV.delete('GEM_PATH')
|
|
147
|
+
end
|
|
148
|
+
|
|
144
149
|
def env_dump!
|
|
145
150
|
ENV.sort.to_h.each_pair do |k, v|
|
|
146
151
|
puts "#{k}=#{v}"
|
|
@@ -2,6 +2,7 @@ FROM <%= base_image %>
|
|
|
2
2
|
MAINTAINER Trey Dockendorf <tdockendorf@osc.edu>
|
|
3
3
|
ENV LANG=en_US.UTF-8
|
|
4
4
|
ENV LC_CTYPE=en_US.UTF-8
|
|
5
|
+
ENV GEM_PATH=<%= ctr_gems_dir %>:
|
|
5
6
|
<% if dist == 'el7' -%>
|
|
6
7
|
RUN yum update -y && yum clean all && rm -rf /var/cache/yum/*
|
|
7
8
|
RUN yum install -y yum-utils epel-release centos-release-scl && yum clean all && rm -rf /var/cache/yum/*
|
|
@@ -73,9 +73,9 @@ echo "allow-loopback-pinentry" >> <%= ctr_gpg_dir %>/gpg-agent.conf
|
|
|
73
73
|
|
|
74
74
|
header "Install ood_packaging gem"
|
|
75
75
|
<%- if rpm? && !dnf? -%>
|
|
76
|
-
run scl enable <%= scl_ruby %> -- gem install --no-doc /build/*.gem
|
|
76
|
+
run scl enable <%= scl_ruby %> -- gem install --no-doc --bindir <%= ctr_scripts_dir %> --install-dir <%= ctr_gems_dir %> /build/*.gem
|
|
77
77
|
<%- else -%>
|
|
78
|
-
run gem install --no-doc /build/*.gem
|
|
78
|
+
run gem install --no-doc --bindir <%= ctr_scripts_dir %> --install-dir <%= ctr_gems_dir %> /build/*.gem
|
|
79
79
|
<%- end -%>
|
|
80
80
|
|
|
81
81
|
header "Copy in launch scripts"
|
|
@@ -157,7 +157,7 @@ class OodPackaging::Package
|
|
|
157
157
|
cmd = []
|
|
158
158
|
cmd.concat exec_launchers if docker_runtime?
|
|
159
159
|
cmd.concat ['scl', 'enable', scl_ruby, '--'] if podman_runtime? && build_box.scl?
|
|
160
|
-
cmd.concat ['rake']
|
|
160
|
+
cmd.concat [File.join(ctr_scripts_dir, 'rake')]
|
|
161
161
|
cmd.concat ['-q'] unless debug
|
|
162
162
|
cmd.concat ['-f', File.join(ctr_scripts_dir, 'Rakefile'), 'ood_packaging:package:build']
|
|
163
163
|
cmd
|
data/lib/ood_packaging/utils.rb
CHANGED
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: ood_packaging
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.0.1.rc.
|
|
4
|
+
version: 0.0.1.rc.6
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Trey Dockendorf
|
|
@@ -94,10 +94,6 @@ files:
|
|
|
94
94
|
- lib/ood_packaging/tasks.rb
|
|
95
95
|
- lib/ood_packaging/utils.rb
|
|
96
96
|
- lib/ood_packaging/version.rb
|
|
97
|
-
- lib/tasks/package_utils.rb
|
|
98
|
-
- lib/tasks/packaging.rb
|
|
99
|
-
- lib/tasks/templates/Dockerfile.el.erb
|
|
100
|
-
- lib/tasks/templates/Dockerfile.ubuntu.erb
|
|
101
97
|
homepage: https://github.com/OSC/ondemand-packaging
|
|
102
98
|
licenses:
|
|
103
99
|
- MIT
|
data/lib/tasks/package_utils.rb
DELETED
|
@@ -1,197 +0,0 @@
|
|
|
1
|
-
# frozen_string_literal: true
|
|
2
|
-
|
|
3
|
-
require 'English'
|
|
4
|
-
require 'erb'
|
|
5
|
-
require 'tempfile'
|
|
6
|
-
|
|
7
|
-
# Package utilities
|
|
8
|
-
module PackageUtils
|
|
9
|
-
def version
|
|
10
|
-
@version ||= if ENV['VERSION']
|
|
11
|
-
ENV['VERSION'].to_s
|
|
12
|
-
else
|
|
13
|
-
tag? ? git_tag : "#{git_tag}-#{git_hash}"
|
|
14
|
-
end
|
|
15
|
-
end
|
|
16
|
-
|
|
17
|
-
def build_timestamp
|
|
18
|
-
@build_timestamp ||= Time.now.strftime('%s')
|
|
19
|
-
end
|
|
20
|
-
|
|
21
|
-
def git_hash
|
|
22
|
-
@git_hash ||= `git rev-parse HEAD`.strip[0..6]
|
|
23
|
-
end
|
|
24
|
-
|
|
25
|
-
def git_tag
|
|
26
|
-
@git_tag ||= `git describe --tags --abbrev=0`.chomp
|
|
27
|
-
end
|
|
28
|
-
|
|
29
|
-
def numeric_tag
|
|
30
|
-
@numeric_tag ||= git_tag.delete_prefix('v')
|
|
31
|
-
end
|
|
32
|
-
|
|
33
|
-
def tag?
|
|
34
|
-
@tag ||= `git describe --exact-match --tags HEAD 2>/dev/null`.to_s != ''
|
|
35
|
-
end
|
|
36
|
-
|
|
37
|
-
def podman_runtime?
|
|
38
|
-
@podman_runtime ||= ENV['CONTAINER_RT'] == 'podman'
|
|
39
|
-
end
|
|
40
|
-
|
|
41
|
-
def docker_runtime?
|
|
42
|
-
!podman_runtime?
|
|
43
|
-
end
|
|
44
|
-
|
|
45
|
-
def container_runtime
|
|
46
|
-
podman_runtime? ? 'podman' : 'docker'
|
|
47
|
-
end
|
|
48
|
-
|
|
49
|
-
def tar
|
|
50
|
-
@tar ||= begin
|
|
51
|
-
`which gtar 1>/dev/null 2>&1`
|
|
52
|
-
$CHILD_STATUS.success? ? 'gtar' : 'tar'
|
|
53
|
-
end
|
|
54
|
-
end
|
|
55
|
-
|
|
56
|
-
def src_dir
|
|
57
|
-
ENV['OOD_SRC_DIR'] || '.'
|
|
58
|
-
end
|
|
59
|
-
|
|
60
|
-
def user
|
|
61
|
-
@user ||= Etc.getpwnam(Etc.getlogin)
|
|
62
|
-
end
|
|
63
|
-
|
|
64
|
-
def build_dir(args)
|
|
65
|
-
@build_dir ||= "#{src_dir}/build/#{build_box_image(args).gsub(':', '-')}".tap { |d| sh "mkdir -p #{d}" }
|
|
66
|
-
end
|
|
67
|
-
|
|
68
|
-
# TODO: continue vendor/ convention? Seems as good as any other name.
|
|
69
|
-
def vendor_src_dir
|
|
70
|
-
'vendor/ood/src'.tap { |p| sh "mkdir -p #{p}" }
|
|
71
|
-
end
|
|
72
|
-
|
|
73
|
-
def vendor_build_dir
|
|
74
|
-
'vendor/ood/build'.tap { |p| sh "mkdir -p #{p}" }
|
|
75
|
-
end
|
|
76
|
-
|
|
77
|
-
def dist_dir(args)
|
|
78
|
-
dist = args[:dist].to_s
|
|
79
|
-
version = args[:version].to_s
|
|
80
|
-
"dist/#{dist}#{version}"
|
|
81
|
-
end
|
|
82
|
-
|
|
83
|
-
def known_images
|
|
84
|
-
{
|
|
85
|
-
'ubuntu-20.04': '1'
|
|
86
|
-
}.freeze
|
|
87
|
-
end
|
|
88
|
-
|
|
89
|
-
def build_box_image(args)
|
|
90
|
-
base_name = "#{args[:dist]}-#{args[:version]}"
|
|
91
|
-
@version_lookup ||= Hash.new('1').merge(known_images)
|
|
92
|
-
|
|
93
|
-
"#{build_box_name}:#{base_name}-#{@version_lookup[base_name.to_sym]}"
|
|
94
|
-
end
|
|
95
|
-
|
|
96
|
-
def build_box_name
|
|
97
|
-
ENV['OOD_BUILD_BOX'] || 'ood-buildbox'
|
|
98
|
-
end
|
|
99
|
-
|
|
100
|
-
def image_exists?(image_name)
|
|
101
|
-
`#{container_runtime} inspect --type image --format exists #{image_name} || true`.chomp.eql?('exists')
|
|
102
|
-
end
|
|
103
|
-
|
|
104
|
-
def build_cmd(file, image)
|
|
105
|
-
args = [container_runtime, 'build', '-t', image, '-f', file]
|
|
106
|
-
args.concat '.' if docker_runtime?
|
|
107
|
-
args.join(' ')
|
|
108
|
-
end
|
|
109
|
-
|
|
110
|
-
def template_file(filename)
|
|
111
|
-
cwd = File.expand_path(__dir__).to_s
|
|
112
|
-
content = File.read("#{cwd}/templates/#{filename}")
|
|
113
|
-
content = ERB.new(content, trim_mode: '-').result(binding)
|
|
114
|
-
|
|
115
|
-
begin
|
|
116
|
-
t = Tempfile.new('ood-docker')
|
|
117
|
-
t.write(content)
|
|
118
|
-
t.path
|
|
119
|
-
ensure
|
|
120
|
-
t.close
|
|
121
|
-
end
|
|
122
|
-
end
|
|
123
|
-
|
|
124
|
-
def ctr_home
|
|
125
|
-
"/home/#{ctr_user}"
|
|
126
|
-
end
|
|
127
|
-
|
|
128
|
-
def ctr_user
|
|
129
|
-
'ood'
|
|
130
|
-
end
|
|
131
|
-
|
|
132
|
-
def ctr_run_args
|
|
133
|
-
[
|
|
134
|
-
'--rm', '--user', "#{ctr_user}:#{ctr_user}",
|
|
135
|
-
'-e', 'LC_CTYPE=en_US.UTF-8'
|
|
136
|
-
].concat(rt_specific_flags)
|
|
137
|
-
end
|
|
138
|
-
|
|
139
|
-
def rt_specific_flags
|
|
140
|
-
if podman_runtime?
|
|
141
|
-
# SELinux doesn't like it if you're mounting from $HOME
|
|
142
|
-
['--security-opt', 'label=disable', '--userns=keep-id']
|
|
143
|
-
else
|
|
144
|
-
[]
|
|
145
|
-
end
|
|
146
|
-
end
|
|
147
|
-
|
|
148
|
-
def arch
|
|
149
|
-
'x86_64'
|
|
150
|
-
end
|
|
151
|
-
|
|
152
|
-
def spec_location
|
|
153
|
-
sf = Dir.glob('packaging/rpm/*.spec').first
|
|
154
|
-
raise StandardError, 'Cannot find spec file in packaging/rpm' if sf.nil?
|
|
155
|
-
|
|
156
|
-
sf
|
|
157
|
-
end
|
|
158
|
-
|
|
159
|
-
def spec_file
|
|
160
|
-
File.basename(spec_location)
|
|
161
|
-
end
|
|
162
|
-
|
|
163
|
-
def rpm_build_args
|
|
164
|
-
[git_tag_define, version_define, '-ba', '--nodeps', '-vv', spec_file]
|
|
165
|
-
|
|
166
|
-
# if git_prerelease_tag.size >= 2
|
|
167
|
-
# git_prerelease_verison = git_prerelease_tag[0]
|
|
168
|
-
# git_prerelease_verison = git_prerelease_verison[1..-1] if git_prerelease_verison.start_with?('v')
|
|
169
|
-
# version_define = "--define 'package_version #{git_prerelease_verison}'"
|
|
170
|
-
# if git_tag.size >= 2
|
|
171
|
-
# prerelease = git_prerelease_tag[1].gsub('-', '.')
|
|
172
|
-
# release_define = "--define 'package_release 0.#{prerelease}'"
|
|
173
|
-
# else
|
|
174
|
-
# release_define = "--define 'package_release 0.#{git_prerelease_tag[1]}.1'"
|
|
175
|
-
# end
|
|
176
|
-
# else
|
|
177
|
-
# version_define = "--define 'package_version #{git_tag_version}'"
|
|
178
|
-
# release_define = if git_tag.size >= 2
|
|
179
|
-
# "--define 'package_release #{git_tag[1]}'"
|
|
180
|
-
# else
|
|
181
|
-
# ''
|
|
182
|
-
# end
|
|
183
|
-
# end
|
|
184
|
-
end
|
|
185
|
-
|
|
186
|
-
def version_define
|
|
187
|
-
git_tag = version.split('-')
|
|
188
|
-
git_tag_version = git_tag[0]
|
|
189
|
-
git_tag_version = git_tag_version[1..] if git_tag_version.start_with?('v')
|
|
190
|
-
|
|
191
|
-
"--define 'package_version #{git_tag_version}'"
|
|
192
|
-
end
|
|
193
|
-
|
|
194
|
-
def git_tag_define
|
|
195
|
-
"--define 'git_tag #{version}'"
|
|
196
|
-
end
|
|
197
|
-
end
|
data/lib/tasks/packaging.rb
DELETED
|
@@ -1,111 +0,0 @@
|
|
|
1
|
-
# frozen_string_literal: true
|
|
2
|
-
|
|
3
|
-
desc 'Package OnDemand'
|
|
4
|
-
namespace :package do
|
|
5
|
-
require_relative 'package_utils'
|
|
6
|
-
include PackageUtils
|
|
7
|
-
|
|
8
|
-
desc 'Tar and zip OnDemand into packaging dir with version name v#<version>'
|
|
9
|
-
task :tar, [:output_dir] do |_task, args|
|
|
10
|
-
version = ENV['VERSION'] || ENV['CI_COMMIT_TAG']
|
|
11
|
-
version = version.gsub(/^v/, '') unless version.nil?
|
|
12
|
-
|
|
13
|
-
chdir src_dir do
|
|
14
|
-
unless version
|
|
15
|
-
latest_commit = `git rev-list --tags --max-count=1`.strip[0..6]
|
|
16
|
-
latest_tag = `git describe --tags #{latest_commit}`.strip[1..]
|
|
17
|
-
datetime = Time.now.strftime('%Y%m%d-%H%M')
|
|
18
|
-
version = "#{latest_tag}-#{datetime}-#{latest_commit}"
|
|
19
|
-
end
|
|
20
|
-
|
|
21
|
-
dir = (args[:output_dir] || 'packaging/rpm').to_s.tap { |p| sh "mkdir -p #{p}" }
|
|
22
|
-
sh "git ls-files | #{tar} -c --transform 's,^,ondemand-#{version}/,' -T - | gzip > #{dir}/v#{version}.tar.gz"
|
|
23
|
-
end
|
|
24
|
-
end
|
|
25
|
-
|
|
26
|
-
# TODO: refactor these 2 tar tasks. Debian and RHEL expect slightly different names and
|
|
27
|
-
# what's worse is the whole v prefixing mess
|
|
28
|
-
task :debian_tar, [:output_dir] do |_task, args|
|
|
29
|
-
dir = (args[:output_dir] || 'packaging').to_s.tap { |p| sh "mkdir -p #{p}" }
|
|
30
|
-
tar_file = "#{dir}/#{ood_package_tar}"
|
|
31
|
-
|
|
32
|
-
sh "rm #{tar_file}" if File.exist?(tar_file)
|
|
33
|
-
sh "git ls-files | #{tar} -c --transform 's,^,#{versioned_ood_package}/,' -T - | gzip > #{tar_file}"
|
|
34
|
-
end
|
|
35
|
-
|
|
36
|
-
task :version do
|
|
37
|
-
puts package_version
|
|
38
|
-
end
|
|
39
|
-
|
|
40
|
-
task :deb, [:dist, :version] => [:build_box] do |_task, args|
|
|
41
|
-
dir = build_dir(args)
|
|
42
|
-
Rake::Task['package:debian_tar'].invoke(dir)
|
|
43
|
-
sh "#{tar} -xzf #{dir}/#{ood_package_tar} -C #{dir}"
|
|
44
|
-
|
|
45
|
-
work_dir = "/build/#{versioned_ood_package}"
|
|
46
|
-
|
|
47
|
-
base_args = ctr_run_args
|
|
48
|
-
base_args.concat ['-v', "#{dir}:/build", '-w', work_dir.to_s]
|
|
49
|
-
base_args.concat ['-e', "DEBUILD_DPKG_BUILDPACKAGE_OPTS='-us -uc -I -i'"]
|
|
50
|
-
base_args.concat ['-e', 'HOME=/home/ood', '-e', 'USER=ood']
|
|
51
|
-
base_args.concat ['-e', "VERSION=#{ENV['VERSION']}"] unless ENV['VERSION'].nil?
|
|
52
|
-
base_args.concat [build_box_image(args)]
|
|
53
|
-
sh "#{container_runtime} run #{base_args.join(' ')} debmake -b':ruby'"
|
|
54
|
-
|
|
55
|
-
debuild_args = ['debuild', '--no-lintian']
|
|
56
|
-
sh "#{container_runtime} run #{base_args.join(' ')} #{debuild_args.join(' ')}"
|
|
57
|
-
end
|
|
58
|
-
|
|
59
|
-
task :bootstrap_rpm, [:dist, :version] => [:verify_args] do |_task, args|
|
|
60
|
-
chdir src_dir do
|
|
61
|
-
build_dir(args).tap do |d|
|
|
62
|
-
src_dir = "#{d}/rpmbuild/SOURCES".tap { |s| sh "mkdir -p #{s}" }
|
|
63
|
-
dist_dir(args).tap { |dd| sh "mkdir -p #{dd}" }
|
|
64
|
-
Rake::Task['package:tar'].invoke(src_dir)
|
|
65
|
-
|
|
66
|
-
FileUtils.cp Dir.glob('packaging/rpm/*.{fc,te,ico,png,tar.gz}'), src_dir
|
|
67
|
-
FileUtils.cp spec_location, d
|
|
68
|
-
end
|
|
69
|
-
end
|
|
70
|
-
end
|
|
71
|
-
|
|
72
|
-
desc 'Build an RPM'
|
|
73
|
-
task :rpm, [:dist, :version] => [:build_box, :bootstrap_rpm] do |_task, args|
|
|
74
|
-
dir = build_dir(args)
|
|
75
|
-
image = build_box_image(args)
|
|
76
|
-
|
|
77
|
-
base_args = ctr_run_args
|
|
78
|
-
base_args.concat ['-v', "#{dir}:#{ctr_home}", '-w', "'#{ctr_home}'"]
|
|
79
|
-
base_args.concat ['-e', "HOME=#{ctr_home}"]
|
|
80
|
-
|
|
81
|
-
chdir src_dir do
|
|
82
|
-
sh "#{container_runtime} run #{base_args.join(' ')} #{image} rpmbuild #{rpm_build_args.join(' ')}"
|
|
83
|
-
FileUtils.cp Dir.glob("#{dir}/rpmbuild/RPMS/#{arch}/*.rpm"), dist_dir(args)
|
|
84
|
-
end
|
|
85
|
-
end
|
|
86
|
-
|
|
87
|
-
namespace :rpm do
|
|
88
|
-
desc 'Build nightly RPM'
|
|
89
|
-
task :nightly, [:dist, :extra_args] do |_task, args|
|
|
90
|
-
version_major, version_minor = git_tag.gsub(/^v/, '').split('.', 3)
|
|
91
|
-
date = Time.now.strftime('%Y%m%d')
|
|
92
|
-
id = ENV['CI_PIPELINE_ID'] || Time.now.strftime('%H%M%S')
|
|
93
|
-
ENV['VERSION'] = "#{version_major}.#{version_minor}.#{date}-#{id}.#{git_hash}.nightly"
|
|
94
|
-
Rake::Task['package:rpm'].invoke(args[:dist], args[:extra_args])
|
|
95
|
-
end
|
|
96
|
-
end
|
|
97
|
-
|
|
98
|
-
task :verify_args, [:dist, :version] do |_task, args|
|
|
99
|
-
raise 'Need to specify :dist and :version' if args[:dist].nil? || args[:version].nil?
|
|
100
|
-
end
|
|
101
|
-
|
|
102
|
-
desc 'Create buildbox for Open OnDemand'
|
|
103
|
-
task :build_box, [:dist, :version] => [:verify_args] do |_task, args|
|
|
104
|
-
cmd = build_cmd(
|
|
105
|
-
template_file("Dockerfile.#{args[:dist]}.erb"),
|
|
106
|
-
build_box_image(args)
|
|
107
|
-
)
|
|
108
|
-
|
|
109
|
-
sh cmd unless image_exists?(build_box_image(args))
|
|
110
|
-
end
|
|
111
|
-
end
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
FROM centos:8
|
|
2
|
-
|
|
3
|
-
# install all the dependencies
|
|
4
|
-
RUN dnf -y update
|
|
5
|
-
RUN dnf install -y dnf-utils
|
|
6
|
-
RUN dnf config-manager --set-enabled powertools
|
|
7
|
-
RUN dnf -y module enable nodejs:12 ruby:2.7
|
|
8
|
-
RUN dnf install -y \
|
|
9
|
-
make gcc gcc-c++ git rsync rpm-build redhat-rpm-config
|
|
10
|
-
RUN dnf install -y libselinux libselinux-devel
|
|
11
|
-
RUN dnf install -y selinux-policy selinux-policy-devel
|
|
12
|
-
RUN dnf install -y scl-utils
|
|
13
|
-
|
|
14
|
-
RUN dnf install -y https://yum.osc.edu/ondemand/latest/ondemand-release-web-latest-1-6.noarch.rpm
|
|
15
|
-
RUN dnf install -y \
|
|
16
|
-
ondemand-runtime ondemand-scldevel ondemand-build ondemand-ruby ondemand-python ondemand-nodejs
|
|
17
|
-
|
|
18
|
-
RUN dnf clean all && rm -rf /var/cache/dnf/*
|
|
19
|
-
|
|
20
|
-
RUN groupadd <%= ctr_user %> && \
|
|
21
|
-
useradd --create-home --gid <%= ctr_user %> <%= ctr_user %>
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
from ubuntu:20.04
|
|
2
|
-
|
|
3
|
-
ENV DEBIAN_FRONTEND=noninteractive
|
|
4
|
-
|
|
5
|
-
RUN apt update && \
|
|
6
|
-
apt install -y \
|
|
7
|
-
ruby=1:2.7+1 ruby-dev=1:2.7+1 \
|
|
8
|
-
nodejs npm \
|
|
9
|
-
make g++ gcc sqlite3 libsqlite3-dev \
|
|
10
|
-
debmake debhelper
|
|
11
|
-
|
|
12
|
-
RUN groupadd <%= ctr_user %> && \
|
|
13
|
-
useradd --create-home --gid <%= ctr_user %> <%= ctr_user %>
|
|
14
|
-
|
|
15
|
-
RUN ln -s /bin/bundle2.7 /bin/bundle
|