Come modificare Dockerfile?

Ho altri container Docker e eseguo passaggi come questi:

# Copia il contenuto della directory corrente nel container in /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/

# Installa eventuali pacchetti necessari specificati in requirements.txt
#RUN pip install -r requirements.txt

# è necessario riavviare nginx dopo i comandi COPY?
RUN 

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

Devo eseguire passaggi simili per il mio container Discourse, ma dove si trova il Dockerfile? Ho letto che forse potrei aggiungerli alla fine di containers/app.yml, ma non ne sono sicuro.

Qualcuno può spiegarmi?

Puoi spiegare esattamente di cosa hai bisogno?

Non è necessario modificare il file Docker per aggiungere un certificato personalizzato; abbiamo una guida a riguardo su Allow SSL / HTTPS for your Discourse Docker setup

Non voglio fare esattamente la stessa cosa. Ho solo degli script shell e un crontab che voglio copiare nel container per automatizzare alcune attività.

Le ultime 5 righe di app.yml contengono un esempio di esecuzione di comandi personalizzati, ad esempio l’aggiunta di

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

Questo scaricherà ed eseguirà quello script.

Sì, lo vedo, ma ogni volta che ricompilo ottengo errori di copia:

## Comandi personalizzati da eseguire dopo la compilazione
run:
  - exec: echo "Inizio dei comandi personalizzati"
  ## Se vuoi impostare l'indirizzo email 'From' per la tua prima registrazione, decommenta e modifica:
  ## Dopo aver ricevuto la prima email di iscrizione, ricommenta la riga. Deve essere eseguita solo una volta.
  #- 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 "Fine dei comandi personalizzati"

Condividi anche il log degli errori.

Potrei effettivamente recuperarli da un URL, è un’idea

I file sono effettivamente presenti sull’host:

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

Ecco l’errore:

FAILED
--------------------
Pups::ExecError: cp /shared/rr/run_badges.sh /etc/cron.d/. failed with return #<Process::Status: pid 1457 exit 1>
Location of failure: /pups/lib/pups/exec_command.rb:112:in `spawn'
exec failed with the params "cp /shared/rr/run_badges.sh /etc/cron.d/."
e23ff12630c8058c4b36ee8673404dafbe6791ec61aa630f1224400eba4e75e0
** FAILED TO BOOTSTRAP ** please scroll up and look for earlier error messages, there may be more than one.
./discourse-doctor may help diagnose the problem.

La directory /shared all’interno del container è mappata, per impostazione predefinita, su /var/discourse/shared/standalone, quindi manca una directory lì.

Quale errore sto commettendo @Falco

comando:

- exec: cp /shared/standalone/sql/run_badges.sh /root
Pups::ExecError: cp /shared/standalone/sql/run_badges.sh /root fallito con return #<Process::Status: pid 1728 exit 1>

in realtà, questa soluzione funziona piuttosto bene. Grazie per averla menzionata.