Como modificar o Dockerfile?

Tenho alguns outros containers Docker e executo etapas como estas:

# Copia o conteúdo do diretório atual para o container em /app
COPY html /usr/share/nginx/html/
COPY dim.local.crt /etc/nginx/ssl/
COPY dim.local.key /etc/nginx/ssl/
COPY nginx.conf /etc/nginx/
COPY default.conf /etc/nginx/sites-enabled/

# Instala os pacotes necessários especificados em requirements.txt
#RUN pip install -r requirements.txt

# É necessário reiniciar o nginx após os comandos COPY?
RUN 

RUN apt-get update \
    && apt-get install -y nano \
    && rm -fr /var/lib/apt/lists/*

Preciso realizar etapas semelhantes no meu container do Discourse, mas onde está o Dockerfile? Li que talvez eu pudesse adicionar isso ao final de containers/app.yml, mas não tenho certeza.

Alguém pode explicar?

Você pode explicar exatamente o que precisa?

Não há necessidade de mexer no arquivo Docker para adicionar um certificado personalizado; temos um guia sobre isso em Allow SSL / HTTPS for your Discourse Docker setup

Eu não quero fazer exatamente a mesma coisa. Eu apenas tenho scripts shell e um crontab que quero copiar para dentro do container para que eu possa automatizar algumas tarefas.

As últimas 5 linhas do app.yml contêm um exemplo de execução de comandos personalizados, como adicionar

- exec: curl example.com/script.sh | bash

Isso fará o download e a execução desse script.

Sim, eu vejo isso, mas toda vez que eu recrio, obtenho erros de cópia:

## Quaisquer comandos personalizados para executar após a construção
run:
  - exec: echo "Início dos comandos personalizados"
  ## Se quiser definir o endereço de e-mail 'De' para seu primeiro registro, descomente e altere:
  ## Após receber o primeiro e-mail de inscrição, comente a linha novamente. Ela só precisa ser executada uma vez.
  #- exec: rails r "SiteSetting.notification_email='info@unconfigured.discourse.org'"
  
  - exec: cp /shared/rr/run_badges.sh /etc/cron.d/.
  - exec: cp /shared/rr/badges /etc/cron.d/.
  - exec: echo "Fim dos comandos personalizados"

Por favor, compartilhe também o log de erro.

De fato, eu poderia buscá-los a partir de uma URL; essa é uma ideia.

Os arquivos realmente estão presentes no host:

# ls -al shared/rr/
badges         run_badges.sh
#

Aqui está o erro:

FALHOU
--------------------
Pups::ExecError: cp /shared/rr/run_badges.sh /etc/cron.d/. falhou com retorno #<Process::Status: pid 1457 exit 1>
Local da falha: /pups/lib/pups/exec_command.rb:112:in `spawn'
exec falhou com os parâmetros "cp /shared/rr/run_badges.sh /etc/cron.d/."
e23ff12630c8058c4b36ee8673404dafbe6791ec61aa630f1224400eba4e75e0
** FALHA NA INICIALIZAÇÃO ** por favor, role para cima e procure por mensagens de erro anteriores; pode haver mais de uma.
./discourse-doctor pode ajudar a diagnosticar o problema.

O diretório /shared dentro do container é mapeado, por padrão, para /var/discourse/shared/standalone, então você está com um diretório faltando lá.

Que erro estou cometendo @Falco

comando:

- exec: cp /shared/standalone/sql/run_badges.sh /root
Pups::ExecError: cp /shared/standalone/sql/run_badges.sh /root falhou com retorno #<Process::Status: pid 1728 exit 1>

na verdade, essa solução funciona muito bem. Obrigado por mencionar.