* Update docker file build to use new deb linux installers; move Dockefile to .github/workflows since its really only useable from the buildDocker.yml workflow * Fix typo in dockerfile location * remove extraneous " in >>GITHUB_ENV statements * Fix handling of TARGETPLATFORM in Dockerfile * Trying with just one platform * Fix issues with missing man-db in docker build workflow; added man-db to depends in deb builds for linux * Sicthed docker from tightvnc to tigervnc to match oio. This getting the apt package name right. * Going back to single platform to debug this thing * Trying with just arm64 * Removing arm/v7 from docker images. Takes too long to build and just wastes our github actions minutes. This is assuming its a never used feature since docker is not big on raspberry pis and their ilk. * Fix typo in control-linux; update build_deb so that files in /usr/local installed by deb are owned by root; add ubuntu user and nano in docker file for dbebugging; when in draft only create for x86_64 platform * Fix typo in buildDocker.yml * Add sudo to docker image; in docker image ensure that all /usr/local/interlisp files are owned by root * Add securityTypes none to docker entrypoint * Updated docker base to Ubuntu 22.10 to get fixed xrdp; add xrdp to the docker image; updated user permission in docker image; * In Dockerfile make xrdp install noninteractive * Update medley.sh scripts to handle docker case * Fix a couple of typos * BuildDcoker: added pulling latest draft release (if any) when this is a draft docker build; removed checkout of medley code cause its not used * BuildDocker: added medley checkout backin - turns pout its needed by a bunch of actions even though I dont really think they use it * BuildDocker: moved download assets to use gh instaed of a marketplace action becauase that action could not handle draft releases. * Tweaking medley.sh and associated tweaks to work Windows via wsl medley and docker * adding first pass at powershell script for windows docker and wsl * Tuning how Xvnc, medley, and vncviewer handle the various ways of exiting - eg logout vs closing viewer window. * Tuning vncviewer launch to make sure that tty works as expected when medley.sh runs in background * Minor typo fixes and added extra check to use of /run/shm in medley_vnc.sh * Added SSH_KEY secret to buildReleaseIncDocker workflow * Gertting the add SSH_KEY secret into orkflows right this time, hopefully * Adding TERM env variable and setting USER to medley in docker image * Debugging medley.ps1 and adding a couple of arguments * Typo in Dockerfile medley * Synchronizing flag processing and usage for medley.ps1 and medley.sh; refactored medley_args.sh and medley_usage.sh code. * Adding first pass at windows installer * Adding first pass an inno setup script for Windows installation * Update buildLoadup workflow and downloads page for windows installer * Fix typo in buildLoadup * BuildLoadup make sure windows runner uses powershell * Another typo in buildLoadup * Another typo in buildLoadup; damn those double quotes * Updating handling of windows installer in buildLoadup, added vncviewer to medley.iss install * Unknown syntax error in buildLoadup * Another damn typo from double quotes * buildLoadup: fixed loadup job outputs * buidLoadup: fixed bug with COMBINED_RELEASE_TAG; fixed Upload script in windows job to be compatible with actions.script v6. * buidLoadup: upload win installer adapted to find draft releases as well as full releases * BuildLoadup: fixing up javascript in actions in windows job to use / instead of \ in pathname * BuildLoadup: changing win installer update to same action used for other release assets * Fix windows installer file name; in BuildLoadup move update downl;oad page to the Windows runner because uploading the window-installer changes the release download url, so updating the downloads page must be done after the windows installer upload.; General buildLoadup cleanup * Run md2html to update downloads page * Fix typo in build_deb.sh * Removing some leftover crud in medley_usage.sh * Fixing up windows installer a bit, mostly cosmetic * Adding support for WSL1; mostly forcing --vnc and changing how to find open ports and displays since WSL1 networking is different tha WSL2 * Update manual page for new Windows Medley script * First pass done for man page that incorporates new Windows medley script. Add Xvnc wait before calling run-medley in case of docker to prevent occasonal missing X windows server error. * Change buildLoadup to update man page to a draft if this is a draft run.
79 lines
3.4 KiB
Plaintext
79 lines
3.4 KiB
Plaintext
#*******************************************************************************
|
|
#
|
|
# Dockerfile to build Medley image from latest Maiko image
|
|
# plus latest release tars from github
|
|
#
|
|
# Copyright 2022-2023 by Interlisp.org
|
|
#
|
|
# ******************************************************************************
|
|
|
|
FROM ubuntu:22.10
|
|
ARG TARGETPLATFORM
|
|
|
|
# Handle ARGs, ENV variables, and LABELs
|
|
ARG BUILD_DATE=unknown
|
|
ARG MEDLEY_RELEASE=unknown
|
|
ARG MAIKO_RELEASE=unknown
|
|
ARG REPO_OWNER=Interlisp
|
|
LABEL name="Medley"
|
|
LABEL description="The Medley Interlisp environment"
|
|
LABEL url="https://github.com/${REPO_OWNER}/medley"
|
|
LABEL build-date=$BUILD_DATE
|
|
LABEL medley_release=$MEDLEY_RELEASE
|
|
LABEL maiko_release=$MAIKO_RELEASE
|
|
|
|
ENV MEDLEY_DOCKER_BUILD_DATE=$BUILD_DATE
|
|
ENV MEDLEY_RELEASE=$MEDLEY_RELEASE
|
|
ENV MAIKO_RELEASE=$MAIKO_RELEASE
|
|
|
|
ENV LANG=C.UTF-8
|
|
|
|
# Copy over the release deb files
|
|
ADD ./*.deb /tmp
|
|
|
|
# Install Medley/Maiko and add tightvnc server and xclip to the image
|
|
RUN apt-get update \
|
|
&& apt-get install -y apt-utils \
|
|
&& apt-get install -y tigervnc-standalone-server \
|
|
&& apt-get install -y xclip \
|
|
&& apt-get install -y man-db \
|
|
&& apt-get install -y nano \
|
|
&& apt-get install -y sudo \
|
|
&& p=$(echo "${TARGETPLATFORM}" | sed -e "s#linux/##") \
|
|
&& p=$( \
|
|
if [ "$p" = "amd64" ]; \
|
|
then echo "x86_64"; \
|
|
elif [ "$p" = "arm64" ]; \
|
|
then echo "aarch64"; \
|
|
elif [ "$p" = "arm/v7" ]; \
|
|
then echo "armv7l"; \
|
|
else \
|
|
echo "x86_64"; \
|
|
fi \
|
|
) \
|
|
&& deb="medley-full-${MEDLEY_RELEASE#medley-}" \
|
|
&& deb=${deb}_${MAIKO_RELEASE#maiko-}-linux-${p}.deb \
|
|
&& apt-get install -y /tmp/${deb} \
|
|
&& chown --recursive root:root /usr/local/interlisp \
|
|
&& (if [ -n "$(which unminimize)" ]; then (yes | unminimize); fi)
|
|
|
|
# "Finalize" image
|
|
EXPOSE 5900
|
|
RUN adduser --gecos "" medley \
|
|
&& adduser --gecos "" ubuntu \
|
|
&& adduser medley sudo \
|
|
&& adduser ubuntu sudo \
|
|
&& (echo 'medley:yeldem' | chpasswd ) \
|
|
&& (echo 'ubuntu:utnubu' | chpasswd ) \
|
|
&& echo "medley ALL=(ALL) NOPASSWD:ALL" >>/etc/sudoers \
|
|
&& echo "ubuntu ALL=(ALL) NOPASSWD:ALL" >>/etc/sudoers \
|
|
&& mkdir -p /home/medley/il \
|
|
&& chown medley:medley /home/medley/il
|
|
|
|
ENV TERM=xterm
|
|
USER medley
|
|
WORKDIR /home/medley
|
|
#ENTRYPOINT USER=medley Xvnc -SecurityTypes none -geometry 1280x720 :0 & DISPLAY=:0 medley --full -g 1280x720
|
|
ENTRYPOINT /bin/bash
|
|
|