Anche se questo non è raccomandato, è fattibile. Il problema è pg_ctl in RUN l'istruzione viene eseguita in fase di compilazione, non nel contenitore. Devi eseguirlo con CMD .
Puoi avere uno script come
pg_ctl start
psql --command "ALTER USER postgres WITH ENCRYPTED PASSWORD 'postgres';"
python3 main.py
COPY lo script nell'immagine e alla fine del dockerfile, `CMD [./script.sh"]