Mirko Domenici aa6792fd5a Fix passaggio env docker file per ambiente | 3 лет назад | |
---|---|---|
bin | 3 лет назад | |
.editorconfig | 4 лет назад | |
.gitignore | 4 лет назад | |
README.md | 4 лет назад | |
package.json | 3 лет назад |
Per ogni servizio docker, vengono eseguiti i seguenti Hook:
<env>
<env>
<env>
<env>
<env>
<env>
Ogni singolo hook prevede l'esistenza di un file <hook>.js
all'interno della folder del servizio docker.
Alcuni esempi di modulo:
// servizio/prepare.before.dev.js
module.exports = ({ log, service, shell }) => {
log("Questo è un esempio di prepare");
try {
shell("mkdir dir");
} catch (code) {
throw "Impossibile creare la directory";
}
};
// servizio/start.after.dev.js
module.exports = ({ log, service, shell, exec }) => {
log("Questo è un esempio di start");
return Promise.resolve()
.then(() => {
return exec("npm i");
});
.then(() => {
return exec("npm update");
});
.then(() => {
return exec("composer install");
});
};
La funzione exec
è disponibile solo per l'hook start
e consente di eseguire codice shell dentro il container già in esecuzione.
La funzione shell
consente di eseguire codice shell sulla macchina host. In caso di ritorno del programma shell diverso da 0, la funzione lancia un'eccezione.
NB: è responsabilità del programmatore gestire eventuali errori derivanti dai comandi eseguiti nei propri script.
Per impedire la prosecuzione del processo di avvio dei container docker, da dentro agli script di hook di tipo prepare
è sufficiente lanciare una eccezione (throw "Messaggio di errore"
) oppure restituire una rejected Promise (return Promise.reject("Messaggio di errore")
)