FROM debian:bullseye-slim LABEL maintainer "Dave Curylo , Michael Hendricks " RUN apt-get update && \ apt-get install -y --no-install-recommends \ libtcmalloc-minimal4 \ libarchive13 \ libyaml-dev \ libgmp10 \ libossp-uuid16 \ libssl1.1 \ ca-certificates \ libdb5.3 \ libpcre3 \ libedit2 \ libgeos-3.9.0 \ libspatialindex6 \ unixodbc \ odbc-postgresql \ tdsodbc \ libmariadbclient-dev-compat \ libsqlite3-0 \ libserd-0-0 \ libraptor2-0 && \ dpkgArch="$(dpkg --print-architecture)" && \ rm -rf /var/lib/apt/lists/* USER root LABEL maintainer = "logicmoo@gmail.com" ARG DEBIAN_FRONTEND=noninteractive ENV DEBIAN_FRONTEND noninteractive MAINTAINER FROM ubuntu:18.04 AS ccls MAINTAINER RUN apt-get update \ && apt-get install -y build-essential cmake clang libclang-dev zlib1g-dev git wget \ && git clone --depth=1 --recursive https://github.com/MaskRay/ccls \ && cd ccls \ && wget -c http://releases.llvm.org/8.0.0/clang+llvm-8.0.0-x86_64-linux-gnu-ubuntu-18.04.tar.xz \ && tar xf clang+llvm-8.0.0-x86_64-linux-gnu-ubuntu-18.04.tar.xz \ && cmake -H. -BRelease -DCMAKE_BUILD_TYPE=Release -DCMAKE_PREFIX_PATH=$PWD/clang+llvm-8.0.0-x86_64-linux-gnu-ubuntu-18.04 \ && cmake --build Release \ && echo apt autoclean -y \ && echo apt autoremove -y \ && rm -rf /var/lib/apt/lists/* MAINTAINER FROM ubuntu:18.04 AS go MAINTAINER RUN apt-get update -y \ && apt-get install -y wget \ && export LATEST_VERSION=`wget -qO- https://golang.org/dl | grep -oE go[0-9]+\.[0-9]+\.[0-9]+\.linux-amd64\.tar\.gz | head -n 1` \ && wget -c https://dl.google.com/go/$LATEST_VERSION \ && tar -xzf $LATEST_VERSION # C-Family MAINTAINER COPY --from=ccls /ccls /ccls MAINTAINER RUN ln -s /ccls/Release/ccls /usr/bin/ccls \ && ln -s /ccls/clang+llvm-8.0.0-x86_64-linux-gnu-ubuntu-18.04/bin/clangd /usr/bin/clangd # Go MAINTAINER COPY --from=go /go /go MAINTAINER ENV PATH "${PATH}:/go/bin:/root/go/bin" MAINTAINER RUN /go/bin/go get -u golang.org/x/tools/gopls # Python MAINTAINER FROM tiryoh/ros-desktop-vnc:noetic as noetic MAINTAINER RUN apt-get update && apt-get install -y python3-pip \ && pip3 install 'python-language-server[all]' \ && echo apt autoclean -y \ && echo apt autoremove -y \ && rm -rf /var/lib/apt/lists/* # # from root@debian10:/opt/logicmoo_workspace # we run.. # # docker build -t logicmoo/logicmoo_starter_image:latest --no-cache --add-host=logicmoo.org:10.0.0.90 - < ./Dockerfile.distro # USER root LABEL maintainer = "logicmoo@gmail.com" ARG DEBIAN_FRONTEND=noninteractive ENV DEBIAN_FRONTEND noninteractive ARG --security-opt seccomp:unconfined # who/where ENV LANG C.UTF-8 ENV LANGUAGE C.UTF-8 ENV LC_ALL C.UTF-8 ENV LOGICMOO_USER prologmud_server ENV LOGICMOO_WS /opt/logicmoo_workspace ENV LOGICMOO_GAMES $LOGICMOO_WS/prologmud_server RUN mkdir -p /usr/share/man/man1 \ && apt update \ && apt install -y apt-utils curl \ && apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 4F4EA0AAE5267A6C \ && sh -c 'echo "deb [trusted=yes] http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list' \ && curl -s https://raw.githubusercontent.com/ros/rosdistro/master/ros.asc | sudo apt-key add - \ # && apt update \ # && apt remove -y apache2 nginx-common \ # && apt purge -y apache2 nginx-common \ && apt-get update \ && apt-get upgrade -y \ && apt-get install -y locales -qq \ && locale-gen en_AU \ && locale-gen en_AU.UTF-8 \ && dpkg-reconfigure locales \ # && locale-gen C.UTF-8 \ && dpkg-reconfigure locales \ # --no-install-recommends \ && apt-get install -y --allow-unauthenticated \ nginx-common nginx nginx-core libnginx-mod-http-geoip libnginx-mod-http-image-filter \ libnginx-mod-http-xslt-filter libnginx-mod-mail libnginx-mod-stream \ supervisor apache2 nmap x11-apps vim eggdrop default-jdk default-jre \ iproute2 libgd3 libgeoip1 libmnl0 libwebp6 libxslt1.1 \ # Emacs PreReqs (added this when Emacs was ~28.0.50) \ build-essential git autoconf texinfo libgnutls28-dev libxml2-dev libncurses5-dev libjansson-dev \ libxpm-dev libjpeg-dev libpng-dev libgif-dev libtiff-dev libjson*-dev libxf*-dev libwebkit2gtk-4.0-dev \ \ python-is-python3 \ python-dev-is-python3 \ python3-gevent \ python3-flask-api \ python3-flask \ python3-gevent-websocket \ python3-novnc \ python3-flask-sockets \ iputils-ping \ iputils-arping \ nfs-kernel-server \ nfs-common \ rpcbind \ telnet \ traceroute \ inotify-tools \ ant \ swig \ flex \ libllvm8 \ lsb-release \ tzdata \ gosu \ zlib1g-dev \ zlib1g \ zip \ yarn \ #xvnc4viewer \ xvfb \ xtrans-dev \ xterm \ xorg-sgml-doctools \ xfonts-base \ xdotool \ xauth \ x11vnc \ x11-utils \ x11proto-xinerama-dev \ x11proto-xext-dev \ x11proto-dev \ x11proto-core-dev \ wget \ vim junit4 \ junit libarchive-dev \ psmisc ninja-build openssh-server po-debconf pkg-config patch \ make net-tools ncurses-dev ncdu \ screen rsync rlwrap automake autoconf autotools-dev cron cmake-data cmake ca-certificates build-essential gdb \ # MAINTAINER RUN apt update -n \ # && apt install -y uuid-dev \ unzip \ unixodbc-dev \ unixodbc \ unattended-upgrades \ tightvncserver \ # tini \ texlive-extra-utils \ tdsodbc \ supervisor \ sudo \ software-properties-common \ r-cran-xtable \ #r-cran-xfun \ #r-cran-tinytex \ r-cran-tikzdevice \ r-cran-testit \ r-cran-sourcetools \ r-cran-shiny \ r-cran-rserve \ r-cran-highr \ r-cran-filehash \ r-cran-devtools \ r-cran-bit64 \ r-cran-base64enc \ r-base-dev \ r-base \ qt5-default \ #python-virtualenv \ python-setuptools \ #python-dev \ python3-pip \ python3-dev \ python-pip-whl \ pwgen \ pandoc-data \ pandoc \ # openjdk-8-jdk \ openjdk-11-jdk \ odbc-postgresql \ odbcinst1debian2 \ odbcinst \ nodejs-doc \ #nginx-full \ nginx-core \ netbase \ curl \ binutils-x86-64-linux-gnu \ binutils-common \ binutils \ bash-completion \ bash \ autopoint \ arc-theme \ apt-utils \ libapache2-mod-php libapache2-mod-proxy-uwsgi \ apache2-utils \ apache2-suexec-pristine \ apache2-suexec-custom \ apache2-ssl-dev \ apache2-doc \ apache2-dev \ apache2-data \ apache2-bin \ apache2 \ analog \ ncurses-term \ libraptor2-0 \ libpthread-stubs0-dev \ libpng-dev \ libpcrecpp0v5 \ libpcre3-dev \ libpcre32-3 \ libpcre3 \ libpcre16-3 \ #libotf0 \ libossp-uuid-dev \ libossp-uuid16 \ libopenmpi-dev \ libodbc1 \ libreadline-dev \ #libreadline7 \ #libraptor2-dev \ libraptor2-0 \ libpthread-stubs0-dev \ libpng-dev \ libpcrecpp0v5 \ libpcre3-dev \ libpcre32-3 \ libpcre3 \ libpcre16-3 \ #libotf0 \ libossp-uuid-dev \ libossp-uuid16 \ libopenmpi-dev \ libodbc1 \ #libntlm0 \ #libnode-dev \ #libnode64 \ libnet-nslookup-perl \ libncurses-dev \ libxfdashboard0 MAINTAINER \ nano \ mysql-common \ mesa-utils \ mariadb-common \ mailutils-common \ mailutils \ m4 \ m17n-db \ lynx \ lxde \ lwm \ lsof \ linux-libc-dev \ libyaml-dev \ libyaml-0-2 \ libxt-dev \ libxt6 \ libxrender-dev \ libxpm-dev \ libxpm4 \ libxml2-dev \ libxinerama-dev \ libxinerama1 \ libxft-dev \ libxft2 \ libxext-dev \ libxext6 \ libxdmcp-dev \ libxcb1-dev \ libxau-dev \ #libx265-165 libx11-dev \ libx11-6 \ libwebpmux3 \ libuv1-dev \ libunwind-dev \ #libunbound8 \ libudunits2-dev \ libubsan1 \ libtsan0 \ libtool \ #libtinfo6 \ libtinfo5 \ libtiff-dev \ libtcmalloc-minimal4 \ libstdc++-8-dev \ libssl-dev \ libssl1.1 \ libssh-dev \ libsqlite3-0 \ libsm-dev \ libsm6 \ libsigsegv2 \ libserd-dev \ libserd-0-0 \ librhash0 \ libreoffice \ #libncurses6 \ libmpx2 \ #libmariadb3 \ #libmailutils5 \ #libmagickwand-6.q16-6 #libmagickcore-6.q16-6 \ #libm17n-0 \ liblzma-dev \ liblua5.1-0 \ libltdl-dev \ libltdl7 \ liblsan0 \ #liblqr-1-0 \ #libkyotocabinet16v5 \ libjs-twitter-bootstrap-datepicker \ libjs-sifter.js \ libjs-prettify \ libjsoncpp1 \ libjs-microplugin.js \ libjs-json \ libjs-jquery-ui \ libjs-jquery-selectize.js \ libjs-jquery-datatables \ libjs-jquery \ libjs-is-typedarray \ libjs-inherits \ libjs-highlight.js \ libjs-es5-shim \ libjs-d3 \ libjpeg-turbo-progs \ libjpeg-dev \ #libjpeg62-turbo \ libjpeg62 \ libitm1 \ libice-dev \ libice6 \ libheif1 \ libgsasl7 \ libgoogle-perftools-dev \ libgnutls-dane0 \ libgmpxx4ldbl \ libgmp-dev \ libgmp10 \ libgl1-mesa-dri \ libgeos++-dev \ libgeos-c1v5 \ libgcc-8-dev \ libgc1c2 \ libfreetype6-dev \ libfreetype6 \ libfontconfig1-dev \ libfontconfig1 \ libfile-stripnondeterminism-perl \ libfftw3-double3 \ libffi-dev \ libexpat1-dev \ libedit-dev \ libedit2 \ libdpkg-perl \ libde265-0 \ libdb-dev \ libdb5.3-dev \ libdb5.3 \ libcurl4-openssl-dev \ #libcurl4-gnutls-dev \ libc-dev-bin \ libcc1-0 \ libc-ares2 \ libcairo-dev \ libc6-dev \ libc6 \ libbsd-dev \ libbinutils \ libatk-wrapper-java-jni \ libatk-wrapper-java \ libasan5 \ libarchive-zip-perl \ libarchive13 \ libapache2-mod-wsgi \ less \ intltool-debian \ install-info \ init \ gyp \ gtk2-engines-pixbuf \ gtk2-engines-murrine \ gsfonts guile-2.2-libs imagemagick-6-common \ ghostscript \ gnupg \ gnome-themes-standard \ gitweb \ git-lfs \ gitk \ git-gui \ git \ gettext \ gdebi-core \ gdbserver \ gcc-8 \ gcc \ g++-8 \ g++ \ file \ exim4-base \ exim4-config \ exim4-daemon-light \ #emacs-gtk \ emacsen-common \ emacs \ elpa-ediprolog \ eggdrop \ dwz \ dpkg-dev \ dh-strip-nondeterminism \ dh-autoreconf \ debhelper \ dctrl-tools \ dbus-x11 MAINTAINER RUN apt update -y \ && apt install -y \ # odd deps we missed for SWI-Prolog (world build version) \ # libcurl4-openssl-dev libgazebo9-dev libignition-fuel-tools1-dev \ # ros-dashing-desktop ros-dashing-gazebo-dev ros-dashing-gazebo-plugins \ # ros-dashing-gazebo-ros ros-dashing-gazebo-ros-pkgs \ # ros-dashing-libcurl-vendor ros-dashing-resource-retriever \ # ros-dashing-rviz-common ros-dashing-rviz-default-plugins \ # ros-dashing-rviz-rendering ros-dashing-rviz2 \ && apt install ros-noetic-desktop-full \ && apt remove -y swi-prolog-* \ && echo apt autoclean -y \ && echo apt autoremove -y \ && rm -rf /var/lib/apt/lists/* RUN mkdir -p /var/lock/apache2 /var/run/apache2 /var/run/sshd /var/log/supervisor RUN cp /etc/ssh/sshd_config /etc/ssh/sshd_config.original RUN chmod a-w /etc/ssh/sshd_config.original RUN echo 'root:ubuntu' | chpasswd RUN sed -i 's/PermitRootLogin without-password/PermitRootLogin yes/' /etc/ssh/sshd_config #COPY supervisord.conf /etc/supervisor/conf.d/supervisord.conf #EXPOSE 22 80 #CMD [“/usr/bin/supervisord”] ENV USER ubuntu MAINTAINER RUN useradd --create-home --home-dir /home/ubuntu --shell /bin/bash --user-group --groups adm,sudo ubuntu && \ echo ubuntu:ubuntu | chpasswd && \ echo "ubuntu ALL=(ALL) NOPASSWD:ALL" >> /etc/sudoers COPY rootfs/ros-eloquent-desktop.sh /ros-eloquent-desktop.sh MAINTAINER RUN mkdir -p /tmp/ros_setup_scripts_ubuntu && mv /ros-eloquent-desktop.sh /tmp/ros_setup_scripts_ubuntu/ && \ ( gosu ubuntu /tmp/ros_setup_scripts_ubuntu/ros-eloquent-desktop.sh ; /bin/true) && \ echo rm -rf /var/lib/apt/lists/* ENV USER=root ENV HOME=/root ########################### # EMACS LSP SUPPORT BEGIN # ########################### # required for apt upgrade (which is requested in EMACS LSP DOCKER) MAINTAINER RUN apt-get update \ ; mv /etc/apache2 /etc/apache2.logicmoo \ ; mv /var/www /var/www.logicmoo \ ; apt purge -y apache2 gitweb \ ; apt install -y apache2 gitweb \ # ; apt install -y gir1.2-harfbuzz-0.0 libgraphite2-dev libharfbuzz-dev libharfbuzz-gobject0 libicu-le-hb-dev libicu-le-hb0 libiculx60 \ ; apt-get upgrade -y \ ; mv /etc/apache2 /etc/apache2.dead \ ; mv /var/www /var/www.logicmoo.dead \ ; mv /etc/apache2.logicmoo /etc/apache2 \ ; mv /var/www.logicmoo /var/www ; /bin/true # Emacs MAINTAINER RUN git clone --depth=1 git://git.sv.gnu.org/emacs.git /emacs \ && cd /emacs && ./autogen.sh \ && ./configure --with-modules --with-json --with-xwidgets \ && make -j4 && make install ######################### # EMACS LSP SUPPORT END # ######################### ENV TINI_VERSION v0.19.0 ADD https://github.com/krallin/tini/releases/download/${TINI_VERSION}/tini /bin/tini RUN chmod +x /bin/tini #RUN chmod +x run.sh #RUN chmod 777 docker-entrypoint.sh RUN apt-get update && apt-get install -y software-properties-common curl gnupg2 && \ curl -fsSL https://apt.releases.hashicorp.com/gpg | apt-key add - && \ apt-add-repository "deb [arch=amd64] https://apt.releases.hashicorp.com $(lsb_release -cs) main" && \ apt-get update && apt-get install -y \ vault bash && \ setcap cap_ipc_lock= /usr/bin/vault # Phase two in case we forgot any above MAINTAINER RUN echo add-apt-repository -y ppa:ondrej/php \ && apt-get update \ # && apt-get install -y -q --no-install-recommends libapache2-mod-php libapache2-mod-proxy-uwsgi # && apt-get install -y -q --no-install-recommends libapache2-mod-php7.4 ; /bin/true \ && apt-get install -y -q --no-install-recommends libapache2-mod-wsgi ; /bin/true \ && apt-get install -y -q --no-install-recommends libapache2-mod-proxy-uwsgi ; /bin/true \ && apt-get install -y -q --no-install-recommends iputils-ping net-tools \ # && apt-get install -y -q --no-install-recommends php7.4-dev php7.4-common php7.4 \ && apt-get install -y -q --no-install-recommends \ php7.4-mysql php7.4-xml php7.4-xmlrpc php7.4-curl \ php7.4-gd php7.4-imagick php7.4-cli php7.4-dev php7.4-imap php7.4-mbstring \ php7.4-opcache php7.4-soap php7.4-zip php7.4-intl \ # && echo apt autoclean -y \ # && echo apt autoremove -y \ # && rm -rf /var/lib/apt/lists/* # install our Butterfly websockets (telnet server over httpd) RUN \ pip install --upgrade pip ; python3 -m pip install --upgrade pip \ # && python3 -m pip uninstall setuptools ; pip install setuptools \ && python3 -m pip install --upgrade setuptools wheel \ && python3 -m pip install tornado asyncio \ && python3 -m pip install butterfly \ && python3 -m pip install butterfly[themes] # If you want to use themes \ && python3 -m pip install butterfly[systemd] # If you want to use systemd \ && RUN cd /etc/systemd/system \ && curl -O https://raw.githubusercontent.com/paradoxxxzero/butterfly/master/butterfly.service \ && curl -O https://raw.githubusercontent.com/paradoxxxzero/butterfly/master/butterfly.socket \ && echo Maybe remember to: systemctl enable butterfly.socket \ && echo Maybe remember to: systemctl start butterfly.socket # expose our used ports EXPOSE 22 #LSP (right?) EXPOSE 8123 5007 6001 5555 8543 EXPOSE 4080 #EXPOSE 443 EXPOSE 4443 EXPOSE 3020 4020 EXPOSE 111 2049 #EXPOSE 139 445 # Phase three in case we forgot any above #python3-gevent-websocket \ #python3-novnc \ #python3-flask-sockets \ LABEL maintainer = "logicmoo@gmail.com" ################################################################################ # merge ################################################################################ #FROM system LABEL maintainer="fcwu.tw@gmail.com" #EXPOSE 80 EXPOSE 4180 EXPOSE 4022 WORKDIR /root ENV HOME=/root \ SHELL=/bin/bash # HEALTHCHECK --interval=60s --timeout=10s CMD curl --fail http://127.0.0.1:6079/api/health COPY rootfs / RUN echo "Set disable_coredump false" >> /etc/sudo.conf # RUN useradd --create-home --home-dir /home/ubuntu --shell /bin/bash --user-group --groups adm,sudo ubuntu && \ RUN echo ubuntu:ubuntu | chpasswd RUN echo "ubuntu ALL=(ALL) NOPASSWD:ALL" >> /etc/sudoers ENV USER ubuntu COPY ./noetic/ros-noetic-desktop.sh / RUN mkdir -p /tmp/ros_setup_scripts_ubuntu && cp /ros-noetic-desktop.sh /tmp/ros_setup_scripts_ubuntu/ MAINTAINER RUN /tmp/ros_setup_scripts_ubuntu/ros-noetic-desktop.sh ; /bin/true COPY ./noetic-testing/ros-noetic-desktop-testing.sh / MAINTAINER RUN /ros-noetic-desktop-testing.sh ; /bin/true RUN wget -O /tmp/google-chrome-stable_current_amd64.deb https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb \ && apt update && apt install -y /tmp/google-chrome-stable_current_amd64.deb \ && apt autoclean -y \ && echo apt autoremove -y \ && rm -rf /var/lib/apt/lists/* MAINTAINER RUN apt-get update \ && export DEBIAN_FRONTEND=noninteractive \ && apt-get -y install --no-install-recommends apt-utils dialog 2>&1 RUN apt update \ && apt install -y npm \ && npm install -g typescript RUN apt update \ && apt install -y mono-complete mono-4.0-gac mono-tools-devel #ENTRYPOINT ["/startup_logicmoo.sh"] #ENTRYPOINT ["/startup.sh"] ENTRYPOINT ["/bin/sh", "-ec", "while :; do echo '.'; sleep 600 ; done"]