Skip to content

Commit 4dabe7e

Browse files
dlenTecnobutrul
authored andcommitted
Feature/pb 22394
1 parent 70880a3 commit 4dabe7e

File tree

5 files changed

+62
-17
lines changed

5 files changed

+62
-17
lines changed

Diff for: Gemfile

+1
Original file line numberDiff line numberDiff line change
@@ -6,3 +6,4 @@ group :test do
66
gem 'serverspec'
77
gem 'pry'
88
end
9+

Diff for: spec/docker_image/image_spec.rb

+25-8
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,20 @@
1212
'PASSBOLT_GPG_KEYRING' => '/var/lib/passbolt/.gnupg'
1313
}
1414

15-
@image = Docker::Image.build_from_dir(ROOT_DOCKERFILES, { 'dockerfile' => $dockerfile, 'buildargs' => JSON.generate($buildargs) } )
15+
if ENV['GITLAB_CI']
16+
Docker.authenticate!(
17+
'username' => ENV['CI_REGISTRY_USER'].to_s,
18+
'password' => ENV['CI_REGISTRY_PASSWORD'].to_s,
19+
'serveraddress' => 'https://registry.gitlab.com/'
20+
)
21+
if ENV['ROOTLESS']
22+
@image = Docker::Image.create('fromImage' => "#{ENV['CI_REGISTRY_IMAGE']}:#{ENV['PASSBOLT_FLAVOUR']}-rootless-latest")
23+
else
24+
@image = Docker::Image.create('fromImage' => "#{ENV['CI_REGISTRY_IMAGE']}:#{ENV['PASSBOLT_FLAVOUR']}-root-latest")
25+
end
26+
else
27+
@image = Docker::Image.build_from_dir(ROOT_DOCKERFILES, { 'dockerfile' => $dockerfile, 'buildargs' => JSON.generate($buildargs) } )
28+
end
1629
set :docker_image, @image.id
1730
set :docker_container_create_options, { 'Cmd' => '/bin/sh' }
1831
end
@@ -67,14 +80,18 @@
6780
expect(file(wait_for)).to exist and be_executable
6881
end
6982
end
70-
83+
7184
describe 'entrypoint' do
7285
it 'is installed' do
73-
expect(file('/docker-entrypoint.sh')).to exist and be_executable
74-
expect(file('/passbolt/entrypoint.sh')).to exist and be_owned_by(passbolt_owner)
75-
expect(file('/passbolt/env.sh')).to exist and be_owned_by(passbolt_owner)
76-
expect(file('/passbolt/entropy.sh')).to exist and be_owned_by(passbolt_owner)
77-
expect(file('/passbolt/deprecated_paths.sh')).to exist and be_executable
86+
expect(file('/docker-entrypoint.sh')).to exist and be_executable.by(passbolt_owner)
87+
if ENV['ROOTLESS'] == 'true'
88+
expect(file('/passbolt/entrypoint-rootless.sh')).to exist and be_readable.by(passbolt_owner)
89+
else
90+
expect(file('/passbolt/entrypoint.sh')).to exist and be_readable.by(passbolt_owner)
91+
end
92+
expect(file('/passbolt/env.sh')).to exist and be_readable.by(passbolt_owner)
93+
expect(file('/passbolt/entropy.sh')).to exist and be_readable.by(passbolt_owner)
94+
expect(file('/passbolt/deprecated_paths.sh')).to exist and be_readable.by(passbolt_owner)
7895
end
7996
end
8097

@@ -137,7 +154,7 @@
137154
describe 'ports exposed' do
138155
it 'exposes port' do
139156
exposed_ports.each do |port|
140-
expect(@image.json['ContainerConfig']['ExposedPorts']).to include("#{port}/tcp")
157+
expect(@image.json['Config']['ExposedPorts']).to include("#{port}/tcp")
141158
end
142159
end
143160
end

Diff for: spec/docker_runtime/runtime_spec.rb

+20-6
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
before(:all) do
66
if ENV['GITLAB_CI']
77
@mysql_image = Docker::Image.create('fromImage' => 'registry.gitlab.com/passbolt/passbolt-ci-docker-images/mariadb-10.3:latest')
8-
else
8+
else
99
@mysql_image = Docker::Image.create('fromImage' => 'mariadb:latest')
1010
end
1111

@@ -16,10 +16,10 @@
1616
'MYSQL_USER=passbolt',
1717
'MYSQL_PASSWORD=±!@#$%^&*()_+=-}{|:;<>?'
1818
],
19-
"Healthcheck" => {
19+
'Healthcheck' => {
2020
"Test": [
21-
"CMD-SHELL",
22-
"mysqladmin ping --silent"
21+
'CMD-SHELL',
22+
'mysqladmin ping --silent'
2323
]
2424
},
2525
'Image' => @mysql_image.id)
@@ -29,7 +29,21 @@
2929
sleep 1
3030
end
3131

32-
@image = Docker::Image.build_from_dir(ROOT_DOCKERFILES, { 'dockerfile' => $dockerfile, 'buildargs' => JSON.generate($buildargs) } )
32+
if ENV['GITLAB_CI']
33+
Docker.authenticate!(
34+
'username' => ENV['CI_REGISTRY_USER'].to_s,
35+
'password' => ENV['CI_REGISTRY_PASSWORD'].to_s,
36+
'serveraddress' => 'https://registry.gitlab.com/'
37+
)
38+
if ENV['ROOTLESS']
39+
@image = Docker::Image.create('fromImage' => "#{ENV['CI_REGISTRY_IMAGE']}:#{ENV['PASSBOLT_FLAVOUR']}-rootless-latest")
40+
else
41+
@image = Docker::Image.create('fromImage' => "#{ENV['CI_REGISTRY_IMAGE']}:#{ENV['PASSBOLT_FLAVOUR']}-root-latest")
42+
end
43+
else
44+
@image = Docker::Image.build_from_dir(ROOT_DOCKERFILES, { 'dockerfile' => $dockerfile, 'buildargs' => JSON.generate($buildargs) } )
45+
end
46+
3347
@container = Docker::Container.create(
3448
'Env' => [
3549
"DATASOURCES_DEFAULT_HOST=#{@mysql.json['NetworkSettings']['IPAddress']}",
@@ -54,7 +68,7 @@
5468
end
5569

5670
let(:passbolt_host) { @container.json['NetworkSettings']['IPAddress'] }
57-
let(:uri) { "/healthcheck/status.json" }
71+
let(:uri) { '/healthcheck/status.json' }
5872
let(:curl) { "curl -sk -o /dev/null -w '%{http_code}' -H 'Host: passbolt.local' https://#{passbolt_host}:#{$https_port}/#{uri}" }
5973

6074
describe 'php service' do

Diff for: spec/docker_runtime_no_envs/runtime_no_envs_spec.rb

+15-2
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
before(:all) do
66
if ENV['GITLAB_CI']
77
@mysql_image = Docker::Image.create('fromImage' => 'registry.gitlab.com/passbolt/passbolt-ci-docker-images/mariadb-10.3:latest')
8-
else
8+
else
99
@mysql_image = Docker::Image.create('fromImage' => 'mariadb:latest')
1010
end
1111
@mysql = Docker::Container.create(
@@ -28,7 +28,20 @@
2828
sleep 1
2929
end
3030

31-
@image = Docker::Image.build_from_dir(ROOT_DOCKERFILES, { 'dockerfile' => $dockerfile, 'buildargs' => JSON.generate($buildargs) } )
31+
if ENV['GITLAB_CI']
32+
Docker.authenticate!(
33+
'username' => ENV['CI_REGISTRY_USER'].to_s,
34+
'password' => ENV['CI_REGISTRY_PASSWORD'].to_s,
35+
'serveraddress' => 'https://registry.gitlab.com/'
36+
)
37+
if ENV['ROOTLESS']
38+
@image = Docker::Image.create('fromImage' => "#{ENV['CI_REGISTRY_IMAGE']}:#{ENV['PASSBOLT_FLAVOUR']}-rootless-latest")
39+
else
40+
@image = Docker::Image.create('fromImage' => "#{ENV['CI_REGISTRY_IMAGE']}:#{ENV['PASSBOLT_FLAVOUR']}-root-latest")
41+
end
42+
else
43+
@image = Docker::Image.build_from_dir(ROOT_DOCKERFILES, { 'dockerfile' => $dockerfile, 'buildargs' => JSON.generate($buildargs) } )
44+
end
3245

3346
@container = Docker::Container.create(
3447
'Env' => [

Diff for: spec/spec_helper.rb

+1-1
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@
3636
)
3737
end
3838

39-
if ENV['ROOTLESS'] == true
39+
if ENV['ROOTLESS'] == 'true'
4040
$cron_binary = '/usr/local/bin/supercronic'
4141
$dockerfile = 'debian/Dockerfile.rootless'
4242
$http_port = '8080'

0 commit comments

Comments
 (0)