Skip to content
GitLab
Explore
Sign in
Primary navigation
Search or go to…
Project
D
Development_Environment
Manage
Activity
Members
Labels
Plan
Issues
Issue boards
Milestones
Wiki
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Snippets
Build
Pipelines
Jobs
Pipeline schedules
Artifacts
Deploy
Releases
Model registry
Operate
Environments
Monitor
Incidents
Service Desk
Analyze
Value stream analytics
Contributor analytics
CI/CD analytics
Repository analytics
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Terms and privacy
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
Montaño Sarria, Andres Felipe
Development_Environment
Commits
80271022
Commit
80271022
authored
1 year ago
by
Montaño Sarria, Andres Felipe
Browse files
Options
Downloads
Patches
Plain Diff
Add plugins installation option
parent
c27232ea
Branches
Branches containing commit
No related tags found
No related merge requests found
Changes
3
Show whitespace changes
Inline
Side-by-side
Showing
3 changed files
dockerfiles/devenv.Dockerfile
+53
-32
53 additions, 32 deletions
dockerfiles/devenv.Dockerfile
dotfiles/docker.sh
+73
-3
73 additions, 3 deletions
dotfiles/docker.sh
dotfiles/ros.sh
+1
-1
1 addition, 1 deletion
dotfiles/ros.sh
with
127 additions
and
36 deletions
dockerfiles/devenv.Dockerfile
+
53
−
32
View file @
80271022
...
@@ -37,6 +37,7 @@ RUN apt-get update && \
...
@@ -37,6 +37,7 @@ RUN apt-get update && \
# ccmake
# ccmake
cmake-curses-gui \
cmake-curses-gui \
direnv \
direnv \
gawk \
gdb \
gdb \
git \
git \
git-lfs \
git-lfs \
...
@@ -54,26 +55,6 @@ RUN if [ "$EXT_SHELL" = "zsh" ]; \
...
@@ -54,26 +55,6 @@ RUN if [ "$EXT_SHELL" = "zsh" ]; \
apt-get
-y
install
zsh
;
\
apt-get
-y
install
zsh
;
\
fi
fi
# Install extra libs from .deb files
WORKDIR
/tmp/srcs/
COPY
/extra_libs/* ./
# Enviroment tools based on ubuntu version
RUN if
[
-f
"common_libs.txt"
]
;
\
then
\
grep
-v
'^#'
common_libs.txt | xargs dpkg
-i
;
\
fi
# Extra libs, e.g. vtk-7.1_20221201-1_amd64.deb
RUN if
[
-f
"
${
ROS_DISTRO
}
_libs.txt"
]
;
\
then
\
grep
-v
'^#'
${
ROS_DISTRO
}
_libs.txt | xargs dpkg
-i
;
\
fi
RUN
rm
-rf
*
RUN
apt-get
--reinstall
install
-y
libnotify-bin notify-osd
# Configure system to look for debian packages in the Artifactory repository
# Configure system to look for debian packages in the Artifactory repository
COPY
auth.conf /etc/apt/auth.conf.d/tecnalia.conf
COPY
auth.conf /etc/apt/auth.conf.d/tecnalia.conf
...
@@ -106,6 +87,8 @@ RUN if [ "${ROS_DISTRO}" = "melodic" ]; \
...
@@ -106,6 +87,8 @@ RUN if [ "${ROS_DISTRO}" = "melodic" ]; \
python-osrf-pycommon
\
python-osrf-pycommon
\
python-vcstool
;
\
python-vcstool
;
\
else
\
else
\
if
[
"
${
ROS_DISTRO
}
"
=
"noetic"
]
;
\
then
\
apt-get update
&&
\
apt-get update
&&
\
apt-get
-y
install
\
apt-get
-y
install
\
ipython3
\
ipython3
\
...
@@ -117,6 +100,7 @@ RUN if [ "${ROS_DISTRO}" = "melodic" ]; \
...
@@ -117,6 +100,7 @@ RUN if [ "${ROS_DISTRO}" = "melodic" ]; \
python3-pip
\
python3-pip
\
# clang
# clang
clangd liblldb-dev libllvm-ocaml-dev python3-clang; \
clangd liblldb-dev libllvm-ocaml-dev python3-clang; \
fi \
fi
fi
# Install ROS 1 tools
# Install ROS 1 tools
...
@@ -149,8 +133,45 @@ RUN if [ -f "${ROS_DISTRO}_requirements.txt" ]; \
...
@@ -149,8 +133,45 @@ RUN if [ -f "${ROS_DISTRO}_requirements.txt" ]; \
RUN
rm
-rf
*
RUN
rm
-rf
*
# Install extra libs from .deb files
WORKDIR
/tmp/srcs/
COPY
/extra_libs/* ./
# Enviroment tools based on ubuntu version
RUN if
[
-f
"common_libs.txt"
]
;
\
then
\
grep
-v
'^#'
common_libs.txt | xargs dpkg
-i
;
\
fi
# Extra libs, e.g. vtk-7.1_20221201-1_amd64.deb
RUN if
[
-f
"
${
ROS_DISTRO
}
_libs.txt"
]
;
\
then
\
grep
-v
'^#'
${
ROS_DISTRO
}
_libs.txt | xargs dpkg
-i
;
\
fi
# Read the plugin list and copy the plugins to their destinations
RUN if
[
-f
"
${
ROS_DISTRO
}
_plugins.txt"
]
;
\
then
\
while
IFS
=
read
-r
line
;
\
do
\
echo
"Processing line:
$line
"
;
\
if
[[
"
$line
"
==
\#
*
]]
;
\
then
\
echo
"Skipping
${
line
}
"
;
\
else
\
plugin_name
=
$(
echo
"
$line
"
|
awk
'{print $1}'
)
;
\
destination
=
$(
echo
"
$line
"
|
awk
'{print $2}'
)
;
\
echo
"Coping
${
plugin_name
}
into
${
destination
}
"
;
\
mkdir
-p
"
$destination
"
&&
cp
-r
"
$plugin_name
"
"
$destination
/"
;
\
fi
;
\
done
<
${
ROS_DISTRO
}
_plugins.txt
;
\
fi
RUN
rm
-rf
*
RUN
apt-get
--reinstall
install
-y
libnotify-bin notify-osd
# Update this date to re-run the image final update
# Update this date to re-run the image final update
LABEL
image.date=2
3
-10-2023
LABEL
image.date=2
5
-10-2023
# Update final image
# Update final image
RUN
apt-get update
\
RUN
apt-get update
\
...
...
This diff is collapsed.
Click to expand it.
dotfiles/docker.sh
+
73
−
3
View file @
80271022
...
@@ -9,11 +9,22 @@ alias drmi="docker rmi"
...
@@ -9,11 +9,22 @@ alias drmi="docker rmi"
alias
dsp
=
"docker system prune --all"
alias
dsp
=
"docker system prune --all"
alias
dimp
=
"docker image prune"
alias
dimp
=
"docker image prune"
# Determine shell extension
if
[
-z
$SHELL
]
;
then
echo
"SHELL not set"
export
SHELL
=
/usr/bin/zsh
ext
=
$(
basename
${
SHELL
}
)
;
else
ext
=
$(
basename
${
SHELL
}
)
;
fi
# Build docker image
# Build docker image
# usage: dockbuild {noetic, melodic}
# usage: dockbuild {noetic, melodic}
function
dockbuild
(){
function
dockbuild
(){
if
[
$#
-lt
1
]
;
then
if
[
$#
-lt
1
]
;
then
echo
"Usage: dockbuild <ROS_DISTRO> [build_args]"
echo
"Usage: dockbuild <ROS_DISTRO> [build_args]"
echo
"ROS_DISTRO:"
echo
" melodic, noetic, humble, etc."
echo
"build_args:"
echo
"build_args:"
echo
" EXT_SHELL - zsh (default) or bash"
echo
" EXT_SHELL - zsh (default) or bash"
return
1
return
1
...
@@ -39,7 +50,23 @@ function dockbuild(){
...
@@ -39,7 +50,23 @@ function dockbuild(){
# ToDo Add extra parameters by arg
# ToDo Add extra parameters by arg
# To share docker --volume /var/run/docker.sock:/var/run/docker.sock:ro
# To share docker --volume /var/run/docker.sock:/var/run/docker.sock:ro
# To share video (usb-cam) --volume /dev/video0:/dev/video0
# To share video (usb-cam) --volume /dev/video0:/dev/video0
# To share pcan --volume /dev/pcanusb32:/dev/pcanusb32
function
dockrun
()
{
function
dockrun
()
{
if
[
$#
-lt
1
]
;
then
echo
"Usage: dockrun <ROS_DISTRO> [posicional options]"
echo
"ROS_DISTRO:"
echo
" melodic, noetic, humble, etc."
echo
"Options:"
echo
" Passing 1 option --> path_to_workspace. E.g., dockrun humble mairon_ws"
echo
" Passing 2 options --> path_to_workspace + extra_config. E.g., dockrun humble mairon_ws video"
echo
" extra_config: pcan, video, pcan_video"
echo
"Examples:"
echo
"dockrun humble mairon_ws"
echo
"dockrun noetic neurondones_ws pcan_video"
echo
"dockrun melodic odinrobot_ws video"
return
1
fi
# Check if the image exist
# Check if the image exist
if
[[
"
$(
docker images
-q
devenv:
$1
2> /dev/null
)
"
==
""
]]
;
then
if
[[
"
$(
docker images
-q
devenv:
$1
2> /dev/null
)
"
==
""
]]
;
then
# build the image
# build the image
...
@@ -48,12 +75,55 @@ function dockrun() {
...
@@ -48,12 +75,55 @@ function dockrun() {
# Check if the container exist
# Check if the container exist
if
[[
$(
docker ps
-aq
-f
name
=
$1
)
]]
;
then
if
[[
$(
docker ps
-aq
-f
name
=
$1
)
]]
;
then
# Attach to conayiner
# Attach to container
if
[
$#
-lt
2
]
;
then
docker
exec
-it
$1
bash
-c
"cd ~/ros/
$1
&&
$ext
"
else
docker
exec
-it
$1
bash
-c
"cd ~/ros/
$1
/
$2
&&
$ext
"
docker
exec
-it
$1
bash
-c
"cd ~/ros/
$1
/
$2
&&
$ext
"
fi
else
else
# Launch container
# Launch container
cd
~/ros/
$1
/
$2
;
cd
~/ros/
$1
/
$2
;
rocker
--home
--ssh
--git
--user
--privileged
--nvidia
--x11
--network
host
--name
$1
devenv:
$1
$3
if
[
$#
-lt
4
]
;
then
rocker
--home
--ssh
--git
--user
--privileged
--nvidia
--x11
--network
host
--name
$1
devenv:
$1
else
if
[
$3
=
"pcan"
]
;
then
rocker
--home
--ssh
--git
--user
--privileged
--nvidia
--x11
--volume
/dev/pcanusb32:/dev/pcanusb32
--network
host
--name
$1
devenv:
$1
else
fi
fi
fi
}
function
dockexec
()
{
if
[
$#
-lt
1
]
;
then
echo
"Usage: dockexec <ROS_DISTRO> [workspace] [command]"
echo
"ROS_DISTRO:"
echo
" melodic, noetic, humble, etc."
echo
"Example:"
echo
"dockexec noetic neurondones_ws roscore"
return
1
fi
# Check if the image exist
if
[[
"
$(
docker images
-q
devenv:
$1
2> /dev/null
)
"
==
""
]]
;
then
# build the image
echo
"Docker image for
${
1
}
does not exist"
return
1
fi
# Check if the container exist
if
[[
$(
docker ps
-aq
-f
name
=
$1
)
]]
;
then
# Attach to container
if
[
$#
-lt
2
]
;
then
docker
exec
-it
$1
bash
-c
"cd ~/ros/
$1
&&
$ext
"
else
docker
exec
-it
$1
bash
-c
"cd ~/ros/
$1
/
$2
&&
$ext
"
fi
else
# Launch container
echo
"Container for
${
1
}
does not exist"
fi
fi
}
}
...
...
This diff is collapsed.
Click to expand it.
dotfiles/ros.sh
+
1
−
1
View file @
80271022
...
@@ -88,7 +88,7 @@ function cbclean(){
...
@@ -88,7 +88,7 @@ function cbclean(){
then
then
roshome
&&
rm
-rf
build devel
install
&&
catkin build
--summarize
--cmake-args
-DCMAKE_BUILD_TYPE
=
Release
roshome
&&
rm
-rf
build devel
install
&&
catkin build
--summarize
--cmake-args
-DCMAKE_BUILD_TYPE
=
Release
else
else
rm
-rf
build
devel
install
&&
cb
rm
-rf
build
log
install
&&
cb
"
$@
"
fi
fi
}
}
...
...
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment