mirror of
https://github.com/DomiStyle/docker-idrac6.git
synced 2024-12-22 13:55:21 +01:00
Add support for SOCKS5 proxy
This commit is contained in:
parent
c4d2330562
commit
5732f3c9a4
@ -11,7 +11,7 @@ RUN APP_ICON_URL=https://raw.githubusercontent.com/DomiStyle/docker-idrac6/maste
|
|||||||
install_app_icon.sh "$APP_ICON_URL"
|
install_app_icon.sh "$APP_ICON_URL"
|
||||||
|
|
||||||
RUN apt-get update && \
|
RUN apt-get update && \
|
||||||
apt-get install -y wget software-properties-common libx11-dev gcc xdotool && \
|
apt-get install -y wget curl software-properties-common libx11-dev gcc xdotool && \
|
||||||
wget -nc https://cdn.azul.com/zulu/bin/zulu8.68.0.21-ca-jdk8.0.362-linux_amd64.deb && \
|
wget -nc https://cdn.azul.com/zulu/bin/zulu8.68.0.21-ca-jdk8.0.362-linux_amd64.deb && \
|
||||||
apt-get install -y ./zulu8.68.0.21-ca-jdk8.0.362-linux_amd64.deb && \
|
apt-get install -y ./zulu8.68.0.21-ca-jdk8.0.362-linux_amd64.deb && \
|
||||||
gcc -o /keycode-hack.so /keycode-hack.c -shared -s -ldl -fPIC && \
|
gcc -o /keycode-hack.so /keycode-hack.c -shared -s -ldl -fPIC && \
|
||||||
|
21
README.md
21
README.md
@ -28,6 +28,25 @@ docker run -d \
|
|||||||
```
|
```
|
||||||
The web interface will be available on port 5800 while the VNC server can be accessed on 5900. Startup might take a few seconds while the Java libraries are downloaded. You can add a volume on /app if you would like to cache them.
|
The web interface will be available on port 5800 while the VNC server can be accessed on 5900. Startup might take a few seconds while the Java libraries are downloaded. You can add a volume on /app if you would like to cache them.
|
||||||
|
|
||||||
|
## Usage (with SOCKS)
|
||||||
|
|
||||||
|
```
|
||||||
|
# Start a local port forwarding using SOCKS
|
||||||
|
ssh -fND 4443 <remote-hostname>
|
||||||
|
docker run -d \
|
||||||
|
-p 5800:5800 \
|
||||||
|
-p 5900:5900 \
|
||||||
|
-e IDRAC_HOST=idrac1.example.org \
|
||||||
|
-e IDRAC_USER=root \
|
||||||
|
-e IDRAC_PASSWORD=1234 \
|
||||||
|
-e SOCKS_PROXY_HOST=host.docker.internal \
|
||||||
|
-e SOCKS_PROXY_PORT=4443 \
|
||||||
|
domistyle/idrac6
|
||||||
|
```
|
||||||
|
|
||||||
|
NB: `host.docker.internal` only works on Windows and MacOS since Docker 18.03+.
|
||||||
|
|
||||||
|
|
||||||
## Configuration
|
## Configuration
|
||||||
|
|
||||||
| Variable | Description | Required |
|
| Variable | Description | Required |
|
||||||
@ -38,6 +57,8 @@ The web interface will be available on port 5800 while the VNC server can be acc
|
|||||||
|`IDRAC_PORT`| The optional port for the web interface. (443 by default) | No |
|
|`IDRAC_PORT`| The optional port for the web interface. (443 by default) | No |
|
||||||
|`IDRAC_KEYCODE_HACK`| If you have issues with keyboard input, try setting this to ``true``. See [here](https://github.com/anchor/idrac-kvm-keyboard-fix) for more infos. | No |
|
|`IDRAC_KEYCODE_HACK`| If you have issues with keyboard input, try setting this to ``true``. See [here](https://github.com/anchor/idrac-kvm-keyboard-fix) for more infos. | No |
|
||||||
|`VIRTUAL_MEDIA`| Filename of iso located within /vmedia to automount | No |
|
|`VIRTUAL_MEDIA`| Filename of iso located within /vmedia to automount | No |
|
||||||
|
|`SOCKS_PROXY_HOST`| The optional host for the SOCKS5 proxy. (disabled by default) | No |
|
||||||
|
|`SOCKS_PROXY_PORT`| The optional port for the SOCKS5 proxy. (disabled by default) | No |
|
||||||
|
|
||||||
**For advanced configuration options please take a look [here](https://github.com/jlesage/docker-baseimage-gui#environment-variables).**
|
**For advanced configuration options please take a look [here](https://github.com/jlesage/docker-baseimage-gui#environment-variables).**
|
||||||
|
|
||||||
|
18
startapp.sh
18
startapp.sh
@ -26,6 +26,13 @@ if [ -f "/run/secrets/idrac_password" ]; then
|
|||||||
IDRAC_PASSWORD="$(cat /run/secrets/idrac_password)"
|
IDRAC_PASSWORD="$(cat /run/secrets/idrac_password)"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
CURL_OPTS=""
|
||||||
|
JAVA_OPTS=""
|
||||||
|
if [ -n "${SOCKS_PROXY_HOST}" ]; then
|
||||||
|
CURL_OPTS="$CURL_OPTS -x socks5://$SOCKS_PROXY_HOST:$SOCKS_PROXY_PORT"
|
||||||
|
JAVA_OPTS="-DsocksProxyHost=$SOCKS_PROXY_HOST -DsocksProxyPort=$SOCKS_PROXY_PORT"
|
||||||
|
fi
|
||||||
|
|
||||||
if [ -z "${IDRAC_HOST}" ]; then
|
if [ -z "${IDRAC_HOST}" ]; then
|
||||||
echo "${RED}Please set a proper idrac host with IDRAC_HOST${NC}"
|
echo "${RED}Please set a proper idrac host with IDRAC_HOST${NC}"
|
||||||
sleep 2
|
sleep 2
|
||||||
@ -62,7 +69,7 @@ fi
|
|||||||
if [ ! -f avctKVM.jar ]; then
|
if [ ! -f avctKVM.jar ]; then
|
||||||
echo "Downloading avctKVM"
|
echo "Downloading avctKVM"
|
||||||
|
|
||||||
wget https://${IDRAC_HOST}:${IDRAC_PORT}/software/avctKVM.jar --no-check-certificate
|
curl $CURL_OPTS -o avctKVM.jar https://${IDRAC_HOST}:${IDRAC_PORT}/software/avctKVM.jar -k --ciphers 'DEFAULT:!DH'
|
||||||
|
|
||||||
if [ ! $? -eq 0 ]; then
|
if [ ! $? -eq 0 ]; then
|
||||||
echo "${RED}Failed to download avctKVM.jar, please check your settings${NC}"
|
echo "${RED}Failed to download avctKVM.jar, please check your settings${NC}"
|
||||||
@ -74,7 +81,7 @@ fi
|
|||||||
if [ ! -f lib/avctKVMIOLinux64.jar ]; then
|
if [ ! -f lib/avctKVMIOLinux64.jar ]; then
|
||||||
echo "Downloading avctKVMIOLinux64"
|
echo "Downloading avctKVMIOLinux64"
|
||||||
|
|
||||||
wget -O lib/avctKVMIOLinux64.jar https://${IDRAC_HOST}:${IDRAC_PORT}/software/avctKVMIOLinux64.jar --no-check-certificate
|
curl $CURL_OPTS -o lib/avctKVMIOLinux64.jar https://${IDRAC_HOST}:${IDRAC_PORT}/software/avctKVMIOLinux64.jar -k --ciphers 'DEFAULT:!DH'
|
||||||
|
|
||||||
if [ ! $? -eq 0 ]; then
|
if [ ! $? -eq 0 ]; then
|
||||||
echo "${RED}Failed to download avctKVMIOLinux64.jar, please check your settings${NC}"
|
echo "${RED}Failed to download avctKVMIOLinux64.jar, please check your settings${NC}"
|
||||||
@ -86,7 +93,7 @@ fi
|
|||||||
if [ ! -f lib/avctVMLinux64.jar ]; then
|
if [ ! -f lib/avctVMLinux64.jar ]; then
|
||||||
echo "Downloading avctVMLinux64"
|
echo "Downloading avctVMLinux64"
|
||||||
|
|
||||||
wget -O lib/avctVMLinux64.jar https://${IDRAC_HOST}:${IDRAC_PORT}/software/avctVMLinux64.jar --no-check-certificate
|
curl $CURL_OPTS -o lib/avctVMLinux64.jar https://${IDRAC_HOST}:${IDRAC_PORT}/software/avctVMLinux64.jar -k --ciphers 'DEFAULT:!DH'
|
||||||
|
|
||||||
if [ ! $? -eq 0 ]; then
|
if [ ! $? -eq 0 ]; then
|
||||||
echo "${RED}Failed to download avctVMLinux64.jar, please check your settings${NC}"
|
echo "${RED}Failed to download avctVMLinux64.jar, please check your settings${NC}"
|
||||||
@ -118,8 +125,9 @@ if [ -n "$IDRAC_KEYCODE_HACK" ]; then
|
|||||||
|
|
||||||
export LD_PRELOAD=/keycode-hack.so
|
export LD_PRELOAD=/keycode-hack.so
|
||||||
fi
|
fi
|
||||||
exec java -cp avctKVM.jar -Djava.library.path="./lib" com.avocent.idrac.kvm.Main ip=${IDRAC_HOST} kmport=5900 vport=5900 user=${IDRAC_USER} passwd=${IDRAC_PASSWORD} apcp=1 version=2 vmprivilege=true "helpurl=https://${IDRAC_HOST}:443/help/contents.html" &
|
exec java $JAVA_OPTS -cp avctKVM.jar -Djava.library.path="./lib" com.avocent.idrac.kvm.Main ip=${IDRAC_HOST} kmport=5900 vport=5900 user=${IDRAC_USER} passwd=${IDRAC_PASSWORD} apcp=1 version=2 vmprivilege=true "helpurl=https://${IDRAC_HOST}:443/help/contents.html" &
|
||||||
|
|
||||||
# If an iso exists at the specified location, mount it
|
# If an iso exists at the specified location, mount it
|
||||||
[ -f "/vmedia/$VIRTUAL_ISO" ] && /mountiso.sh
|
[ -f "/vmedia/$VIRTUAL_ISO" ] && /mountiso.sh
|
||||||
wait
|
wait
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user