With Application Hosting, you can use a Dockerfile to set up your container image. Using a Dockerfile gives you more control, and you can use almost any language, so you are not restricted to the languages Buildpacks support.
A Dockerfile sets up the environment depending on the instructions within the Dockerfile, which must include commands to install the language, adjacent software, and libraries, set up the port, and start the web server. Kinsta automatically sets the
PORT environment variable. You do not need to define it yourself or hard-code it into the application. For example, in Node.js, use
process.env.PORT in your code when referring to the server port.
Detailed information about how to create a Dockerfile is available in Docker Docs.
To use a Dockerfile, when you add an application, select the option to Use Dockerfile to set up container image in the Build environment.
The Dockerfile path is the path to your Dockerfile relative to the repository root. For example, if your Dockerfile is in the repository root, enter Dockerfile in that field. If your Dockerfile is in a subdirectory named app, enter the path to the Dockerfile: app/Dockerfile.
Context is the path in the repository we need access to so we can build your application. Most applications are built from the repository root, and you can enter the repository root (.) in the Context field. If your application needs to be built from a subdirectory (e.g. app), enter that subdirectory path in the Context field: app.
Complete the rest of the fields for adding your application and click Add application.
To help get you started, here’s an example Dockerfile you can use for reference or as a starting point.
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"]