The macOS Dock only displays images that are in the .icns format. If you would like to use a customized logo for the Self Service Dock icon, then you will need to convert an image into this format.

The following script needs a few small adjustments in order to make a valid .icns file for the Self Service application Dock icon. Simply substitute the quoted strings after pathToImage and imageName. The script will take those two variables and create a MyIcon.icns file in the folder that was specified. The image provided needs to have equal width and height, preferably 1024x1024px and be in PNG format.

Note: These are Bash command language scripts and can be executed from a macOS Terminal session. 

You can either save the entire script as a .sh file and execute it to produce the .icns file (recommended) or you can go line-by-line but doing line-by-line will require you to type out the file paths each time. 

#!/usr/bin/env bash

# Change the two variable lines below to make this script work.

# Make sure the path has NO '/' at the end, and the image has a '/' at the beginning.

# sips command with -z flag is used here to adjust the size, file name is then adjusted to use the proper naming convention for later conversion using the iconutil command.

# not every sips command here is necessary, you would only need the one for the size(s) you desire, the rest may be omitted.

mkdir "${pathToImage}/MyIcon.iconset"
sips -z 16 16  "${pathToImage}${imageName}" --out "${pathToImage}/MyIcon.iconset/icon_16x16.png"
sips -z 32 32  "${pathToImage}${imageName}" --out "${pathToImage}/MyIcon.iconset/icon_16x16@2x.png"
sips -z 32 32  "${pathToImage}${imageName}" --out "${pathToImage}/MyIcon.iconset/icon_32x32.png"
sips -z 25 25 "${pathToImage}${imageName}" --out "${pathToImage}/MyIcon.iconset/icon_25x25@2x.png"
sips -z 64 64  "${pathToImage}${imageName}" --out "${pathToImage}/MyIcon.iconset/icon_32x32@2x.png"
sips -z 128 128  "${pathToImage}${imageName}" --out "${pathToImage}/MyIcon.iconset/icon_128x128.png"
sips -z 256 256  "${pathToImage}${imageName}" --out "${pathToImage}/MyIcon.iconset/icon_128x128@2x.png"
sips -z 256 256  "${pathToImage}${imageName}" --out "${pathToImage}/MyIcon.iconset/icon_256x256.png"
sips -z 512 512  "${pathToImage}${imageName}" --out "${pathToImage}/MyIcon.iconset/icon_256x256@2x.png"
sips -z 512 512  "${pathToImage}${imageName}" --out "${pathToImage}/MyIcon.iconset/icon_512x512.png"
cp "${pathToImage}${imageName}" "${pathToImage}/MyIcon.iconset/icon_512x512@2x.png"
iconutil -c icns "${pathToImage}/MyIcon.iconset"
rm -R "${pathToImage}/MyIcon.iconset"

Once these commands are executed, the .icns file will be located in the directory the source file came from.

Alternatively, you can use third party sites such as to easily create .icns files.