Dockerfile
Con l’Hosting di Applicazioni, puoi utilizzare un Dockerfile per configurare l’immagine del tuo container. L’utilizzo di un Dockerfile offre un maggiore controllo ed è possibile utilizzare quasi tutti i linguaggi, senza limitarsi ai linguaggi supportati dai Buildpack o Nixpacks.
Un Dockerfile configura l’ambiente in base alle istruzioni contenute al suo interno. Queste devono includere i comandi per installare il linguaggio, il software adiacente e le librerie, impostare la porta e avviare il server web. Kinsta imposta automaticamente la variabile d’ambiente PORT
. Non è necessario definirla da soli o inserirla nell’applicazione. Ad esempio, in Node.js, utilizzate process.env.PORT
nel codice quando fate riferimento alla porta del server.
Informazioni dettagliate su come creare un Dockerfile sono disponibili nei Docker Docs.
Impostazioni di Dockerfile
Per utilizzare un Dockerfile, quando si aggiunge un’applicazione, selezionare l’opzione Usa Dockerfile per configurare l’immagine del container nel campo Ambiente di Build.
Il Percorso del Dockerfile è il percorso del Dockerfile rispetto alla root del repository. Ad esempio, se il Dockerfile si trova nella root del repository, bisogna inserire Dockerfile in questo campo. Se il Dockerfile si trova in una sottodirectory chiamata app, bisogna inserire il percorso del Dockerfile: app/Dockerfile.
Il context è il percorso del repository a cui bisogna accedere per poter costruire l’applicazione. La maggior parte delle applicazioni viene costruita dalla root del repository ed è possibile inserire la root del repository (.) nel campo Context. Se l’applicazione deve essere costruita da una sottodirectory (ad esempio app), va inserito il percorso della sottodirectory nel campo Context: app.
Per aggiungere l’applicazione vanno compilati gli altri campi e fare clic su Aggiungi applicazione.
Esempio di Dockerfile
Per aiutarvi a iniziare, ecco un esempio di Dockerfile che potete usare come riferimento o come punto di partenza.
FROM node:carbon
LABEL maintainer="Kinsta devs"
# Set the working directory to /app
WORKDIR /app
# Copy the current directory contents into the container at /app
COPY . /app
# Install any needed packages specified in package.json
RUN npm install
# Run app when the container launches
CMD ["npm", "start"]
Ospitare un database con un Dockerfile
Se si combina l’archiviazione persistente e un Dockerfile, è possibile ospitare praticamente qualsiasi database con il nostro Hosting di Applicazioni. Anche un database come Microsoft SQL Server, che non è supportato dal nostro Hosting di Database, può essere distribuito. Se potete containerizzarlo con un file Docker, potete distribuirlo sull’Hosting di Applicazioni.
L’archiviazione persistente è necessaria per conservare i dati del database. Se si distribuisce un database sull’Hosting di Applicazioni senza archiviazione persistente, tutti i dati andranno persi se l’applicazione viene riavviata o distribuita nuovamente.
Le immagini Docker per molti database sono disponibili su Docker Hub. Cercate il badge Docker Official Image quando cercate un database per ottenere le immagini più sicure e ben documentate che seguono le best practice.