Skip to content
GitLab
Projects
Groups
Snippets
Help
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
D
docker
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
1
Issues
1
List
Boards
Labels
Service Desk
Milestones
Merge Requests
0
Merge Requests
0
Operations
Operations
Incidents
Analytics
Analytics
Repository
Value Stream
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
hepsw
docker
Commits
1b06230f
Commit
1b06230f
authored
Nov 27, 2019
by
Marian Heil
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Allow setting the base docker for combination
parent
cf68baaf
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
23 additions
and
19 deletions
+23
-19
combine_dockers/Docker_template
combine_dockers/Docker_template
+0
-1
combine_dockers/combine_dockers.sh
combine_dockers/combine_dockers.sh
+23
-18
No files found.
combine_dockers/Docker_template
View file @
1b06230f
...
...
@@ -9,7 +9,6 @@ FROM base AS builder
WORKDIR TEMPLATE_BASEDIR
# setup environment file
RUN printf "#! /usr/bin/env bash\n" > HEJ_env.sh
#SOURCE
FROM base
...
...
combine_dockers/combine_dockers.sh
View file @
1b06230f
...
...
@@ -4,14 +4,15 @@ export HEPSW_HOME="/cvmfs/pheno.egi.eu/HEJ"
image_name
(){
# created docker image name
echo
"maheil/"
${
1
,,
}
":
gcc9_ubuntu
"
echo
"maheil/"
${
1
,,
}
":
latest
"
}
TARGET_NAME
=
"
${
1
}
"
SOURCE_IMAGES
=(
${
@
:2
}
)
BASE_NAME
=
"
${
2
}
"
SOURCE_IMAGES
=(
${
@
:3
}
)
if
[[
${#
SOURCE_IMAGES
[@]
}
-lt
2
]]
;
then
>
&2
echo
"Usage:
${
0
}
target source1 source2 [...]"
if
[[
${#
SOURCE_IMAGES
[@]
}
-lt
1
]]
;
then
>
&2
echo
"Usage:
${
0
}
target
base
source1 source2 [...]"
exit
1
fi
...
...
@@ -22,7 +23,7 @@ TARGET_IMAGE=$(image_name ${TARGET_NAME})
TARGET_DOCKER
=
Docker_
${
TARGET_NAME
}
TARGET_PREFIX
=
${
TARGET_NAME
^^
}
_PREFIX
echo
"
Setting up
\"
${
TARGET
}
\"
from
\"
${
SOURCE_IMAGES
[@]
}
\"
"
echo
"
Combining
\"
${
SOURCE_IMAGES
[@]
}
\"
in
\"
${
TARGET_NAME
}
\"
based on
\"
${
BASE_NAME
}
\"
"
mkdir
-p
build
cd
build
...
...
@@ -34,32 +35,36 @@ sed -i -e "s TEMPLATE_NAME ${TARGET_NAME} g" ${TARGET_DOCKER} | exit 2
sed
-i
-e
"s TEMPLATE_BASEDIR
${
HEPSW_HOME
}
g"
${
TARGET_DOCKER
}
|
exit
2
echo
"- Installation directory is set to
${
HEPSW_HOME
}
"
# add sources
if
[[
${#
SOURCE_IMAGES
[@]
}
-gt
0
]]
;
then
base_docker
=
$(
image_name
${
SOURCE_IMAGES
[0]^^
}
)
else
# set base
if
[[
${
BASE_NAME
}
==
"compiler"
]]
;
then
base_docker
=
$(
image_name
"compiler"
)
sed
-i
-e
"s0#SOURCE0RUN printf
\"\#
! /usr/bin/env bash
\\\n\"
> HEJ_env.sh
\n
#SOURCE0g"
\
${
TARGET_DOCKER
}
|
exit
2
else
declare
-n
dep_dir
=
HEPSW_
${
BASE_NAME
^^
}
_DIR
declare
-n
dep_name
=
HEPSW_
${
BASE_NAME
^^
}
_NAME
base_docker
=
$(
image_name
${
BASE_NAME
}
)
sed
-i
-e
"s#SOURCE#SOURCE
\n
RUN printf
\"
source
${
dep_dir
}
/
${
dep_name
}
dependencies.sh
\\\n\"
>> HEJ_env.sh#g"
\
${
TARGET_DOCKER
}
|
exit
2
sed
-i
-e
"s#SOURCE#SOURCE
\n
RUN printf
\"
source
${
dep_dir
}
/
${
dep_name
}
env.sh
\\\n\"
>> HEJ_env.sh#g"
\
${
TARGET_DOCKER
}
|
exit
2
fi
echo
"- Using
\"
${
base_docker
}
\"
as base docker"
sed
-i
-e
"s TEMPLATE_BASE
${
base_docker
}
g"
${
TARGET_DOCKER
}
|
exit
2
for
dep
in
${
SOURCE_IMAGES
[@]
:1
}
;
do
# add sources
# TODO this is a lazy we don't add the "dependencies of dependencies"
for
dep
in
${
SOURCE_IMAGES
[@]
}
;
do
declare
-n
dep_dir
=
HEPSW_
${
dep
^^
}
_DIR
declare
-n
dep_name
=
HEPSW_
${
dep
^^
}
_NAME
dep_docker
=
$(
image_name
${
dep_name
}
)
echo
"- Adding target
\"
${
dep_docker
}
\"
"
sed
-i
-e
"s#IMAGES#IMAGES
\n
COPY --from=
${
dep_docker
}
${
dep_dir
}
${
dep_dir
}
#g"
\
${
TARGET_DOCKER
}
|
exit
2
done
for
dep
in
${
SOURCE_IMAGES
[@]
}
;
do
declare
-n
dep_dir
=
HEPSW_
${
dep
^^
}
_DIR
declare
-n
dep_name
=
HEPSW_
${
dep
^^
}
_NAME
echo
"- Sourcing target
\"
${
dep_docker
}
\"
"
sed
-i
-e
"s#SOURCE#SOURCE
\n
RUN printf
\"
source
${
dep_dir
}
/
${
dep_name
}
dependencies.sh
\\\n\"
>> HEJ_env.sh#g"
\
${
TARGET_DOCKER
}
|
exit
2
sed
-i
-e
"s#SOURCE#SOURCE
\n
RUN printf
\"
source
${
dep_dir
}
/
${
dep_name
}
env.sh
\\\n\"
>> HEJ_env.sh#g"
\
${
TARGET_DOCKER
}
|
exit
2
sed
-i
-e
"s#IMAGES#IMAGES
\n
COPY --from=
${
dep_docker
}
${
dep_dir
}
${
dep_dir
}
#g"
\
${
TARGET_DOCKER
}
|
exit
2
done
echo
"- Success! To build the docker run:
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment