O comando apt-get install xauth
deve ser requerido apenas uma vez, e assim você pode incluí-lo em seu Dockerfile para que ele seja executado quando você construir sua imagem.
RUN apt-get install xauth
Para o comando xauth add
, você parece estar dependendo da variável DISPLAY, que é passada para o contêiner na inicialização. Nesse caso, seria melhor criar um script de shell que faça toda a inicialização necessária na inicialização e, em seguida, inicie seu programa em Python. Por exemplo:
#!/bin/bash
HOST=cctv
DISPLAY_NUMBER=$(echo $DISPLAY | cut -d. -f1 | cut -d: -f2)
AUTH_COOKIE=$(xauth list | grep "^$(hostname)/unix:${DISPLAY_NUMBER} " | awk '{print $3}')
xauth add ${HOST}/unix:${DISPLAY_NUMBER} MIT-MAGIC-COOKIE-1 ${AUTH_COOKIE}
python /path/to/program.py
Depois, você pode copiar este script durante a fase de construção e configurá-lo como seu comando ou ponto de entrada.
COPY init-script.bash /opt/program
CMD ["/bin/bash","/opt/program/init-script.bash"]