diff --git a/Dockerfile b/Dockerfile
index 4cf621dc8c95ac3ca24feea914cca46b29b5fab5..1584de1a69dc9185ddcea59362d5fac68499dfcb 100644
--- a/Dockerfile
+++ b/Dockerfile
@@ -1,28 +1,21 @@
-FROM osrf/ros:melodic-desktop-full-bionic
+FROM henry2423/ros-vnc-ubuntu:melodic
 
-ARG uid=1000
-ARG gid=1000
+USER root
 
-COPY entrypoint.sh /entrypoint.sh
-RUN chmod +x /entrypoint.sh
+# Updated ros gpg key: https://github.com/henry2423/docker-ros-vnc/issues/1
+RUN apt-key adv --keyserver 'hkp://keyserver.ubuntu.com:80' --recv-key C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654
+RUN apt-key del 421C365BD9FF1F717815A3895523BAEEB01FA116
 
-ENV USERNAME ros
-RUN useradd -m $USERNAME && \
-        echo "$USERNAME:$USERNAME" | chpasswd && \
-        usermod --shell /bin/bash $USERNAME && \
-        usermod -aG sudo $USERNAME && \
-        echo "$USERNAME ALL=(ALL) NOPASSWD:ALL" >> /etc/sudoers.d/$USERNAME && \
-        chmod 0440 /etc/sudoers.d/$USERNAME && \
-        # Replace 1000 with your user/group id
-        usermod  --uid $uid $USERNAME && \
-        groupmod --gid $gid $USERNAME
+COPY ./vnc-entrypoint.sh /entrypoint.sh
+RUN chmod +x /entrypoint.sh
 
 RUN apt-get update && apt-get install -y \
       python-catkin-tools bash \
       mesa-utils libgl1-mesa-glx 
-WORKDIR /home/$USERNAME
-COPY src /home/$USERNAME/src
-RUN rosdep install --from-paths . -r -y
+COPY ./src /src/src
+WORKDIR /src/
+ENV ROS_DISTRO=melodic
+RUN apt-get update && rosdep install --from-paths . -r -y
 RUN catkin config \
       --extend /opt/ros/melodic && \
     catkin build
diff --git a/config.xlaunch b/config.xlaunch
deleted file mode 100644
index 04b7faeb2ff618014c25a18c332d40fa1053e284..0000000000000000000000000000000000000000
--- a/config.xlaunch
+++ /dev/null
@@ -1,2 +0,0 @@
-<?xml version="1.0"?>
-<XLaunch xmlns="http://www.straightrunning.com/XmingNotes" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.straightrunning.com/XmingNotes XLaunch.xsd" WindowMode="MultiWindow" ClientMode="NoClient" Display="0" Clipboard="true" NoAccessControl="true"/>
diff --git a/docker-run-mac.sh b/docker-run-mac.sh
deleted file mode 100644
index 1e407c85b6e309d59ccd04ddd2e70605480d7bf7..0000000000000000000000000000000000000000
--- a/docker-run-mac.sh
+++ /dev/null
@@ -1,16 +0,0 @@
-#!/bin/sh
-
-docker build . -t ceti-panda-gazebo-workspace
-
-XSOCK=/tmp/.X11-unix
-
-/usr/X11/bin/xhost + 127.0.0.1
-defaults write org.macosforge.xquartz.X11 enable_iglx -bool true
-
-docker run -it \
-    --volume=$XSOCK:$XSOCK:rw \
-    --env="LIBGL_ALWAYS_INDIRECT=1" \
-    --env="DISPLAY=host.docker.internal:0" \
-    --user="ros" \
-    ceti-panda-gazebo-workspace \
-    "$@"
\ No newline at end of file
diff --git a/docker-run.bat b/docker-run-vnc.bat
similarity index 56%
rename from docker-run.bat
rename to docker-run-vnc.bat
index 440af3a4c2242d593f1e85e201328adeaf9cf044..c5d3bf3ce5e44eaebfe0ad8ecb815cbcb7e46903 100644
--- a/docker-run.bat
+++ b/docker-run-vnc.bat
@@ -1,10 +1,7 @@
-start config.xlaunch
-
 docker build . -t ceti-panda-gazebo-workspace
 
 docker run -it^
- --env="DISPLAY=host.docker.internal:0"^
- --user="ros"^
+ -p 5901:5901 -p 6901:6901^
  ceti-panda-gazebo-workspace^
  %*
 
diff --git a/docker-run-vnc.sh b/docker-run-vnc.sh
new file mode 100644
index 0000000000000000000000000000000000000000..c0f40ed3cb3c54a89c641ec51b87cae2c8bd56f7
--- /dev/null
+++ b/docker-run-vnc.sh
@@ -0,0 +1,8 @@
+#!/bin/sh
+
+docker build . -t ceti-panda-gazebo-workspace
+
+docker run -it \
+    -p 5901:5901 -p 6901:6901 \
+    ceti-panda-gazebo-workspace \
+    "$@"
\ No newline at end of file
diff --git a/docker-run.sh b/docker-run.sh
deleted file mode 100755
index a53368027d31bcd98a437b0df6c52ec89968d23a..0000000000000000000000000000000000000000
--- a/docker-run.sh
+++ /dev/null
@@ -1,23 +0,0 @@
-#!/bin/bash
-
-# http://wiki.ros.org/docker/Tutorials/GUI
-
-docker build . -t ceti-panda-gazebo-workspace \
-    --build-arg UID=$UID \
-    --build-arg GID=$GID
-
-XSOCK=/tmp/.X11-unix
-XAUTH=/tmp/.docker.xauth
-touch $XAUTH
-xauth nlist $DISPLAY | sed -e 's/^..../ffff/' | xauth -f $XAUTH nmerge -
-
-docker run -it \
-    --volume=$XSOCK:$XSOCK:rw \
-    --volume=$XAUTH:$XAUTH:rw \
-    --env="XAUTHORITY=${XAUTH}" \
-    --env="DISPLAY" \
-    --device=/dev/dri \
-    --group-add video \
-    --user="ros" \
-    ceti-panda-gazebo-workspace \
-    "$@"
\ No newline at end of file
diff --git a/vnc-entrypoint.sh b/vnc-entrypoint.sh
new file mode 100644
index 0000000000000000000000000000000000000000..483d5fa9801cad0b4d04351b66a5d1dfbed4133b
--- /dev/null
+++ b/vnc-entrypoint.sh
@@ -0,0 +1,4 @@
+#!/bin/bash
+source /opt/ros/melodic/setup.bash
+source /src/devel/setup.bash
+exec /dockerstartup/vnc_startup.sh $@
\ No newline at end of file