Starting vncserver using supervisord inside a Linux container

I’m trying to start vncserver using supervisord at the bootup time for the lxc container (I don’t think being a container is relevant). The issue is that the machine starts as root. My supervisord program section looks like:

[program:vnc]
directory=/
user=ubuntu
environment=HOME="/home/ubuntu",USER="ubuntu"
priority=901
command=/usr/bin/vncserver -fg -geometry 1024x768 :1

However, I find that the log files show its trying to create a password, though there already exists a password in /home/ubuntu/.vnc/passwd

  • How to start docker container in memory?
  • run batch in wordpress docker container
  • Remote access to webserver in docker container
  • How to share data from host to containers using named volumes?
  • Docker : How to access the Dockerfile of an image?
  • Gearmand Does Not Start - Socket Address Family Not Supported
  • Wondering if I am missing something? Isn’t user supposed to change the user, $HOME and $USER before running the command?

  • How to get a list of images on docker registry v2
  • docker-compose : Unsupported config option for services service: 'web'
  • Best way to distribute a docker container to people with varying technical backgrounds [closed]
  • ASP.net core dev container
  • Docker: executng commands with non-root user inside container
  • Permissions error when using cli in Jboss wildfly and docker
  • One Solution collect form web for “Starting vncserver using supervisord inside a Linux container”

    You can define to run a container with specific user’s name (if existing) or UID without any existing user in the image/container.

    Docker documentation: https://docs.docker.com/engine/reference/run/#user

    USER

    root (id = 0) is the default user within a container. The image
    developer can create additional users. Those users are accessible by
    name. When passing a numeric ID, the user does not have to exist in
    the container.

    The developer can set a default user to run the first process with the
    Dockerfile USER instruction. When starting a container, the operator
    can override the USER instruction by passing the -u option.

    -u="": Username or UID
    

    Note: if you pass a numeric uid, it must be in the range of
    0-2147483647.

    Docker will be the best open platform for developers and sysadmins to build, ship, and run distributed applications.