Commit Graph

10 Commits

Author SHA1 Message Date
Mark Cave-Ayland
6931631adc Dockerfile: add logic for optional install Universal interfaces on startup
Define a docker-entrypoint.sh that checks for the environment variables INTERFACES.
If INTERFACES is set to "universal" then we do the following:

  - If the universal/RIncludes directory is not empty, assume that the Universal
    interfaces are already installed. Call interfaces-and-libraries.sh to link
    the Universal interfaces instead of the default multiversal interfaces.

  - Otherwise check the INTERFACESFILE environment variable to locate a suitable
    Macbinary DiskCopy image of MPW-GM.img.bin containing the
    "Interfaces&Libraries" directory, which can be a path within the container
    image itself or an external URL. If the file is a URL then download it first,
    then decompress the file using ConvertDiskImage and then use the in-built
    hfsutils to extract the relevant files under /tmp/InterfacesAndLibraries.
    Finally call interfaces-and-libraries.sh to link the Universal interfaces
    instead of the default multiversal interfaces.

Otherwise use the multiversal interfaces which are included by default.
2023-12-17 21:13:01 +00:00
Mark Cave-Ayland
4042463991 Dockerfile: add macutils and interfaces-and-libraries.sh to image
These files will be required in order to download and install the Universal
Interfaces within the created image.
2023-12-17 20:11:54 +00:00
Wolfgang Thaller
01bccd3d35 remove test image from Dockerfile, link to repo 2023-12-16 22:49:02 +01:00
Wolfgang Thaller
1d8f4f6774 test setup for docker 2023-12-16 16:27:50 +01:00
Mark Cave-Ayland
d8e2780f8d Dockerfile: add toolchain bin directory to the default PATH
This allows the Retro68 compilers to be executed regardless of the current
working directory which is set to /root by default.
2023-12-16 12:59:53 +01:00
Mark Cave-Ayland
86a16a78cf Dockerfile: add git package to the image
This enables code to be checked out from within the running container as is
typically used by CI runners.
2023-12-16 12:59:53 +01:00
Mark Cave-Ayland
bde1485a9e Dockerfile: only copy the build directory artifacts into the final release image
Use the docker multi-stage build functionality to perform the Retro68 build in a
temporary build image, and then copy the final build directory into a fresh
release image. This reduces the final release image size from 9.2GB to 2.6GB.
2023-12-16 12:59:53 +01:00
Mark Cave-Ayland
0649693436 Dockerfile: bring build up to date with that in azure-pipelines.yml
Update Dockerfile to use Ubuntu 20.04 and the updated package list from
azure-pipelines.yml. Also explicitly include the g++ package into the container
without which configure will error out with a 'configure: error: C++ preprocessor
"/lib/cpp" fails sanity check' error.
2023-12-16 12:59:53 +01:00
Steve Salevan
921ff11ddb Adjusting Dockerfile to support clean builds 2018-08-14 22:02:47 -04:00
Wolfgang Thaller
270cafaab4 improve LaunchAPPL 2017-10-02 09:21:55 +02:00