From 13cd03a762cf1f907218dafda690818a717657b9 Mon Sep 17 00:00:00 2001 From: Sukalpo Mitra Date: Sat, 2 Mar 2024 04:46:17 +0800 Subject: [PATCH] Self contained Teedy Dockerfile (#745) --- Dockerfile | 43 ++- docker/etc/bashrc.d/init.sh | 5 + docker/etc/dircolors | 480 +++++++++++++++++++++++++ docker/etc/vim/vimrc.local | 1 + docker/opt/jetty/etc/jetty-logging.xml | 5 + docker/opt/jetty/etc/jetty.conf | 12 + 6 files changed, 544 insertions(+), 2 deletions(-) create mode 100644 docker/etc/bashrc.d/init.sh create mode 100644 docker/etc/dircolors create mode 100644 docker/etc/vim/vimrc.local create mode 100644 docker/opt/jetty/etc/jetty-logging.xml create mode 100644 docker/opt/jetty/etc/jetty.conf diff --git a/Dockerfile b/Dockerfile index a6a1a2e89..c5f0e2582 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,4 +1,43 @@ -FROM sismics/ubuntu-jetty:11.0.14 +FROM ubuntu:22.04 + +# Run Debian in non interactive mode +ENV DEBIAN_FRONTEND noninteractive + +# Configure settings +ENV LANG C.UTF-8 +ENV LC_ALL C.UTF-8 +RUN ln -fs /usr/share/zoneinfo/Europe/Paris /etc/localtime +RUN apt-get update && apt-get -y -q install --reinstall tzdata +RUN dpkg-reconfigure -f noninteractive tzdata +COPY docker/etc /etc +RUN echo "for f in \`ls /etc/bashrc.d/*\`; do . \$f; done;" >> ~/.bashrc +RUN apt-get -y -q install vim less procps unzip wget && \ + rm -rf /var/lib/apt/lists/* + +RUN apt-get update && \ + apt-get -y -q install openjdk-11-jdk && \ + apt-get clean && rm -rf /var/lib/apt/lists/* + +ENV JAVA_HOME /usr/lib/jvm/java-11-openjdk-amd64/ +ENV JAVA_OPTS -Duser.timezone=Europe/Paris -Dfile.encoding=UTF-8 -Xmx1024m + +ENV JETTY_VERSION 11.0.14 +RUN wget -nv -O /tmp/jetty.tar.gz \ + "https://repo1.maven.org/maven2/org/eclipse/jetty/jetty-home/${JETTY_VERSION}/jetty-home-${JETTY_VERSION}.tar.gz" \ + && tar xzf /tmp/jetty.tar.gz -C /opt \ + && mv /opt/jetty* /opt/jetty \ + && useradd jetty -U -s /bin/false \ + && chown -R jetty:jetty /opt/jetty \ + && mkdir /opt/jetty/webapps +WORKDIR /opt/jetty +RUN chmod +x bin/jetty.sh + +# Init configuration +COPY docker/opt /opt +EXPOSE 8080 +ENV JETTY_HOME /opt/jetty +ENV JAVA_OPTIONS -Xmx512m + LABEL maintainer="b.gamard@sismics.com" RUN apt-get update && \ @@ -44,5 +83,5 @@ ADD docs-web/target/docs-web-*.war /app/webapps/docs.war ENV JAVA_OPTIONS -Xmx1g WORKDIR /app +# Set the default command to run when starting the container CMD ["java", "-jar", "/opt/jetty/start.jar"] - diff --git a/docker/etc/bashrc.d/init.sh b/docker/etc/bashrc.d/init.sh new file mode 100644 index 000000000..073dbd012 --- /dev/null +++ b/docker/etc/bashrc.d/init.sh @@ -0,0 +1,5 @@ +export SHELL=/bin/bash +export LS_OPTIONS='--color=auto' +eval "`dircolors /etc/dircolors`" +alias ls='ls $LS_OPTIONS' +alias ll='ls -l' diff --git a/docker/etc/dircolors b/docker/etc/dircolors new file mode 100644 index 000000000..9386afa4e --- /dev/null +++ b/docker/etc/dircolors @@ -0,0 +1,480 @@ +# Exact Solarized Light color theme for the color GNU ls utility. +# Designed for dircolors (GNU coreutils) 5.97 +# +# This simple theme was simultaneously designed for these terminal color schemes: +# - Solarized dark +# - Solarized light (best) +# - default dark +# - default light +# with a slight optimization for Solarized Light. +# +# How the colors were selected: +# - Terminal emulators often have an option typically enabled by default that makes +# bold a different color. It is important to leave this option enabled so that +# you can access the entire 16-color Solarized palette, and not just 8 colors. +# - We favor universality over a greater number of colors. So we limit the number +# of colors so that this theme will work out of the box in all terminals, +# Solarized or not, dark or light. +# - We choose to have the following category of files: +# NORMAL & FILE, DIR, LINK, EXEC and +# editable text including source, unimportant text, binary docs & multimedia source +# files, viewable multimedia, archived/compressed, and unimportant non-text +# - For uniqueness, we stay away from the Solarized foreground colors are -- either +# base00 (brightyellow) or base0 (brightblue). However, they can be used if +# you know what the bg/fg colors of your terminal are, in order to optimize the display. +# - 3 different options are provided: universal, solarized dark, and solarized light. +# The only difference between the universal scheme and one that's optimized for +# dark/light is the color of "unimportant" files, which should blend more with the +# background +# - We note that blue is the hardest color to see on dark bg and yellow is the hardest +# color to see on light bg (with blue being particularly bad). So we choose yellow +# for multimedia files which are usually accessed in a GUI folder browser anyway. +# And blue is kept for custom use of this scheme's user. +# - See table below to see the assignments. + + +# Installation instructions: +# This file goes in the /etc directory, and must be world readable. +# You can copy this file to .dir_colors in your $HOME directory to override +# the system defaults. + +# COLOR needs one of these arguments: 'tty' colorizes output to ttys, but not +# pipes. 'all' adds color characters to all output. 'none' shuts colorization +# off. +COLOR tty + +# Below, there should be one TERM entry for each termtype that is colorizable +TERM ansi +TERM color_xterm +TERM color-xterm +TERM con132x25 +TERM con132x30 +TERM con132x43 +TERM con132x60 +TERM con80x25 +TERM con80x28 +TERM con80x30 +TERM con80x43 +TERM con80x50 +TERM con80x60 +TERM cons25 +TERM console +TERM cygwin +TERM dtterm +TERM dvtm +TERM dvtm-256color +TERM Eterm +TERM eterm-color +TERM fbterm +TERM gnome +TERM gnome-256color +TERM jfbterm +TERM konsole +TERM konsole-256color +TERM kterm +TERM linux +TERM linux-c +TERM mach-color +TERM mlterm +TERM nxterm +TERM putty +TERM putty-256color +TERM rxvt +TERM rxvt-256color +TERM rxvt-cygwin +TERM rxvt-cygwin-native +TERM rxvt-unicode +TERM rxvt-unicode256 +TERM rxvt-unicode-256color +TERM screen +TERM screen-16color +TERM screen-16color-bce +TERM screen-16color-s +TERM screen-16color-bce-s +TERM screen-256color +TERM screen-256color-bce +TERM screen-256color-s +TERM screen-256color-bce-s +TERM screen-256color-italic +TERM screen-bce +TERM screen-w +TERM screen.linux +TERM screen.xterm-256color +TERM screen.xterm-new +TERM st +TERM st-meta +TERM st-256color +TERM st-meta-256color +TERM tmux +TERM tmux-256color +TERM vt100 +TERM xterm +TERM xterm-new +TERM xterm-16color +TERM xterm-256color +TERM xterm-256color-italic +TERM xterm-88color +TERM xterm-color +TERM xterm-debian +TERM xterm-termite + +# EIGHTBIT, followed by '1' for on, '0' for off. (8-bit output) +EIGHTBIT 1 + +############################################################################# +# Below are the color init strings for the basic file types. A color init +# string consists of one or more of the following numeric codes: +# +# Attribute codes: +# 00=none 01=bold 04=underscore 05=blink 07=reverse 08=concealed +# Text color codes: +# 30=black 31=red 32=green 33=yellow 34=blue 35=magenta 36=cyan 37=white +# Background color codes: +# 40=black 41=red 42=green 43=yellow 44=blue 45=magenta 46=cyan 47=white +# +# NOTES: +# - See http://www.oreilly.com/catalog/wdnut/excerpt/color_names.html +# - Color combinations +# ANSI Color code Solarized Notes Universal SolDark SolLight +# ~~~~~~~~~~~~~~~ ~~~~~~~~~ ~~~~~ ~~~~~~~~~ ~~~~~~~ ~~~~~~~~ +# 00 none NORMAL, FILE +# 30 black base02 +# 01;30 bright black base03 bg of SolDark +# 31 red red docs & mm src +# 01;31 bright red orange EXEC +# 32 green green editable text +# 01;32 bright green base01 unimportant text +# 33 yellow yellow unclear in light bg multimedia +# 01;33 bright yellow base00 fg of SolLight unimportant non-text +# 34 blue blue unclear in dark bg user customized +# 01;34 bright blue base0 fg in SolDark unimportant text +# 35 magenta magenta LINK +# 01;35 bright magenta violet archive/compressed +# 36 cyan cyan DIR +# 01;36 bright cyan base1 unimportant non-text +# 37 white base2 +# 01;37 bright white base3 bg in SolLight +# 05;37;41 unclear in Putty dark + + +### By file type + +# global default +NORMAL 00 +# normal file +FILE 00 +# directory +DIR 36 +# XX2, XX3, XX6, and XX7 directories +OTHER_WRITABLE 34;47 +# symbolic link +LINK 35 + +# pipe, socket, block device, character device (blue bg) +FIFO 30;44 +SOCK 35;44 +DOOR 35;44 # Solaris 2.5 and later +BLK 33;44 +CHR 37;44 + + +############################################################################# +### By file attributes + +# Orphaned symlinks (blinking white on red) +# Blink may or may not work (works on iTerm dark or light, and Putty dark) +ORPHAN 05;37;41 +# ... and the files that orphaned symlinks point to (blinking white on red) +MISSING 05;37;41 + +# files with execute permission +EXEC 01;31 # Unix +.cmd 01;31 # Win +.exe 01;31 # Win +.com 01;31 # Win +.bat 01;31 # Win +.reg 01;31 # Win +.app 01;31 # OSX + +############################################################################# +### By extension + +# List any file extensions like '.gz' or '.tar' that you would like ls +# to colorize below. Put the extension, a space, and the color init string. +# (and any comments you want to add after a '#') + +### Text formats + +# Text that we can edit with a regular editor +.txt 32 +.org 32 +.md 32 +.mkd 32 + +# Source text +.h 32 +.hpp 32 +.c 32 +.C 32 +.cc 32 +.cpp 32 +.cxx 32 +.objc 32 +.cl 32 +.sh 32 +.bash 32 +.csh 32 +.zsh 32 +.el 32 +.vim 32 +.java 32 +.pl 32 +.pm 32 +.py 32 +.rb 32 +.hs 32 +.php 32 +.htm 32 +.html 32 +.shtml 32 +.erb 32 +.haml 32 +.xml 32 +.rdf 32 +.css 32 +.sass 32 +.scss 32 +.less 32 +.js 32 +.coffee 32 +.man 32 +.0 32 +.1 32 +.2 32 +.3 32 +.4 32 +.5 32 +.6 32 +.7 32 +.8 32 +.9 32 +.l 32 +.n 32 +.p 32 +.pod 32 +.tex 32 +.go 32 +.sql 32 +.csv 32 +.sv 32 +.svh 32 +.v 32 +.vh 32 +.vhd 32 + +### Multimedia formats + +# Image +.bmp 33 +.cgm 33 +.dl 33 +.dvi 33 +.emf 33 +.eps 33 +.gif 33 +.jpeg 33 +.jpg 33 +.JPG 33 +.mng 33 +.pbm 33 +.pcx 33 +.pdf 33 +.pgm 33 +.png 33 +.PNG 33 +.ppm 33 +.pps 33 +.ppsx 33 +.ps 33 +.svg 33 +.svgz 33 +.tga 33 +.tif 33 +.tiff 33 +.xbm 33 +.xcf 33 +.xpm 33 +.xwd 33 +.xwd 33 +.yuv 33 + +# Audio +.aac 33 +.au 33 +.flac 33 +.m4a 33 +.mid 33 +.midi 33 +.mka 33 +.mp3 33 +.mpa 33 +.mpeg 33 +.mpg 33 +.ogg 33 +.opus 33 +.ra 33 +.wav 33 + +# Video +.anx 33 +.asf 33 +.avi 33 +.axv 33 +.flc 33 +.fli 33 +.flv 33 +.gl 33 +.m2v 33 +.m4v 33 +.mkv 33 +.mov 33 +.MOV 33 +.mp4 33 +.mp4v 33 +.mpeg 33 +.mpg 33 +.nuv 33 +.ogm 33 +.ogv 33 +.ogx 33 +.qt 33 +.rm 33 +.rmvb 33 +.swf 33 +.vob 33 +.webm 33 +.wmv 33 + +### Misc + +# Binary document formats and multimedia source +.doc 31 +.docx 31 +.rtf 31 +.odt 31 +.dot 31 +.dotx 31 +.ott 31 +.xls 31 +.xlsx 31 +.ods 31 +.ots 31 +.ppt 31 +.pptx 31 +.odp 31 +.otp 31 +.fla 31 +.psd 31 + +# Archives, compressed +.7z 1;35 +.apk 1;35 +.arj 1;35 +.bin 1;35 +.bz 1;35 +.bz2 1;35 +.cab 1;35 # Win +.deb 1;35 +.dmg 1;35 # OSX +.gem 1;35 +.gz 1;35 +.iso 1;35 +.jar 1;35 +.msi 1;35 # Win +.rar 1;35 +.rpm 1;35 +.tar 1;35 +.tbz 1;35 +.tbz2 1;35 +.tgz 1;35 +.tx 1;35 +.war 1;35 +.xpi 1;35 +.xz 1;35 +.z 1;35 +.Z 1;35 +.zip 1;35 + +# For testing +.ANSI-30-black 30 +.ANSI-01;30-brblack 01;30 +.ANSI-31-red 31 +.ANSI-01;31-brred 01;31 +.ANSI-32-green 32 +.ANSI-01;32-brgreen 01;32 +.ANSI-33-yellow 33 +.ANSI-01;33-bryellow 01;33 +.ANSI-34-blue 34 +.ANSI-01;34-brblue 01;34 +.ANSI-35-magenta 35 +.ANSI-01;35-brmagenta 01;35 +.ANSI-36-cyan 36 +.ANSI-01;36-brcyan 01;36 +.ANSI-37-white 37 +.ANSI-01;37-brwhite 01;37 + +############################################################################# +# Your customizations + +# Unimportant text files +# For universal scheme, use brightgreen 01;32 +# For optimal on light bg (but too prominent on dark bg), use white 01;34 +#.log 01;32 +#*~ 01;32 +#*# 01;32 +.log 01;34 +*~ 01;34 +*# 01;34 + +# Unimportant non-text files +# For universal scheme, use brightcyan 01;36 +# For optimal on dark bg (but too prominent on light bg), change to 01;33 +.bak 01;36 +.BAK 01;36 +.old 01;36 +.OLD 01;36 +.org_archive 01;36 +.off 01;36 +.OFF 01;36 +.dist 01;36 +.DIST 01;36 +.orig 01;36 +.ORIG 01;36 +.swp 01;36 +.swo 01;36 +*,v 01;36 +#.bak 01;33 +#.BAK 01;33 +#.old 01;33 +#.OLD 01;33 +#.org_archive 01;33 +#.off 01;33 +#.OFF 01;33 +#.dist 01;33 +#.DIST 01;33 +#.orig 01;33 +#.ORIG 01;33 +#.swp 01;33 +#.swo 01;33 +#*,v 01;33 + +# The brightmagenta (Solarized: purple) color is free for you to use for your +# custom file type +.gpg 34 +.gpg 34 +.pgp 34 +.asc 34 +.3des 34 +.aes 34 +.enc 34 +.sqlite 34 diff --git a/docker/etc/vim/vimrc.local b/docker/etc/vim/vimrc.local new file mode 100644 index 000000000..b19008d13 --- /dev/null +++ b/docker/etc/vim/vimrc.local @@ -0,0 +1 @@ +:color desert \ No newline at end of file diff --git a/docker/opt/jetty/etc/jetty-logging.xml b/docker/opt/jetty/etc/jetty-logging.xml new file mode 100644 index 000000000..f76e4e267 --- /dev/null +++ b/docker/opt/jetty/etc/jetty-logging.xml @@ -0,0 +1,5 @@ + + + + + diff --git a/docker/opt/jetty/etc/jetty.conf b/docker/opt/jetty/etc/jetty.conf new file mode 100644 index 000000000..2030b52bb --- /dev/null +++ b/docker/opt/jetty/etc/jetty.conf @@ -0,0 +1,12 @@ +# ======================================================== +# jetty.conf Configuration for jetty.sh script +# -------------------------------------------------------- +# This file is used by the jetty.sh script to provide +# extra configuration arguments for the start.jar command +# created by that script. +# +# Each line in this file becomes an arguement to start.jar +# in addition to those found in the start.ini file +# ======================================================= +jetty-logging.xml +jetty-started.xml