The base image is the powerful linuxserver/docker-baseimage-guacgui which which targets a Ubuntu desktop in Docker accessible in browser and interested me to create a container for old Flash. Without the ability to access an inner browser or other GUI application directly in browser, it is not so attractive to do these work.
Firefox running in Docker accessible in Chrome
Standalone Flash player running in Docker accessible in Chrome
A simple command is:
docker run -p 8080:8080 --name play-adobe-flash-after-eol jchprj/play-adobe-flash-after-eol
Then open http://localhost:8080 in your browser.
There are some customizable settings:
Just expose 3389 port as well, if 3389 is already used, change it to whatever, for example, 3390:
docker run -p 8080:8080 -p 3390:3389 --name play-adobe-flash-after-eol jchprj/play-adobe-flash-after-eol
Use environment variable: STARTUP
, the value is a whole command, for example:
docker run -e "STARTUP=firefox http://localhost/index.html" -p 8080:8080 --name play-adobe-flash-after-eol jchprj/play-adobe-flash-after-eol
The value of STARTUP
could be one of the following commands(if need open any URL by default, just add the URL to the end of the line):
flashplayer
flashplayerdebugger
google-chrome --no-sandbox
Another way is to mount the /startup
folder, and provide a different start.sh
, it will be executed at the beginning.
WARNING: Don't use the STARTUP
while mounting the /startup
folder as the internal mechanism is write the value of STARTUP
to /startup/start.sh
which will override the outside file mounted to the folder. Until find a better way.
There is a light HTTP server running in the container and serve /flash
folder. Just mount this folder could run any contents outside the container.
The purpose of the HTTP server is standalone Flash player disabled loading local content by default and hard to be set in advance using Docker, so a http server is running in the container to support open content in http://localhost
If you want to compile .swf
from source, another Docker image(jchprj/docker-flex-4.6-sdk-ant) I created years ago could be used, for example:
docker run -v ${PWD}:/flash -it --rm jchprj/docker-flex-4.6-sdk-ant mxmlc /flash/HelloWorld.as
Chrome 64-bit 53.0.2785.116 is the latest version that have no EOL time limit. After this version, if run after EOL, will not allow to play Flash.
The accompanied Flash Player version inside this Chrome is 23.0.0.162, unfortunately it will crush when I run some 3D Flash contents. So Firefox maybe a better choice.
Firefox 64-bit does not have such early time limit as Chrome, even version 84.0 allow play Flash, but 53.0.3 is the latest version I tested for some 3D contents, so I used this version in master
branch. Will use other version in other branches.
32.0.0.371 is the latest version that has no time limit.
No time limitation, officially allow to use after EOL, so use the latest version: 32.0.0.465(downloaded from Adobe).