πŸ“•Deploy an Application with a Dockerfile on Clouddley

Learn how to deploy an application using a Dockerfile on Clouddley.

Deploying applications with a Dockerfile on Clouddley allows you to containerize and manage your application efficiently. This guide provides step-by-step instructions on deploying an Express.js application using a Dockerfile, ensuring a seamless and reliable deployment process.

Prerequisites

Creating a Dockerfile

In the application root directory, create a Dockerfile triggr.dockerfile that defines how the app should be containerized.

circle-info

Best Practice: When creating a Dockerfile, use a lightweight base image (e.g., node:alpine for Node.js apps) to reduce image size. Always specify exact versions for dependencies to ensure consistency.

triggr.dockerfile
# Use an official Node.js runtime as a parent image
FROM node:18-alpine

# Set the working directory in the container
WORKDIR /app

# Copy package.json and package-lock.json first for dependency installation
COPY package*.json ./

# Install dependencies
RUN npm install --omit=dev  # Use --omit=dev for production builds

# Copy the rest of the application code
COPY . .

# Expose the application port (ensure it matches the port your app listens on)
EXPOSE 3011

# Define the command to run the application
CMD ["node", "./bin/www"]

Building and Running the Container Locally

Before deploying to Apps, verify that the container works locally.

  1. Build the Docker image:

  2. Run the container:

  3. Verify the app is running by visiting http://localhost:3011.

Deploying the Application

Accessing Apps

  • Open your web browser, log in to your Clouddley account

  • Navigate to Appsarrow-up-right and click on Deploy App.

Image of Apps dashboard on Clouddley.
Accessing Apps

Step 1: Configure Service

  • Choose your Git hosting service; either GitHub or Bitbucket. For this tutorial, we will be using GitHub.

  • Click on Continue with GitHub

Configuring Git hosting service during app deployment on Clouddley.
Choose your Git hosting service

Step 2: Configure Git

  • To connect your GitHub user or organization account, click the Select username/organization dropdown and Add GitHub account.

  • Select your repository and the branch from the dropdown list or quickly search.

  • Click on Next

Configuring the Git repository during app deployment on Clouddley.
Setup the Express.js application repository on Clouddley

Step 3: Configure your Virtual Machine

In the Choose or add server dropdown, select your virtual machine (VM) if it’s already listed. If not, select + Add Virtual Machine.

Enter the following details to configure your VM:

  • Hostname or IP address

  • Username

  • SSH port

After adding the details, use the Clouddley CLI (recommended) or connect via SSH to verify the connection.

The Clouddley CLI is a command-line tool that allows you to interact with the Clouddley Platform from your terminal.

  • Open the command line of the remote VM you want to configure to Clouddley and install Clouddley CLI by running the command:

  • To add the SSH public key, run the command:

Using the CLI, you can deploy resources, manage configurations, and automate tasks efficiently.

  • Click on Verify. This verifies the connection.

  • Click on Next

Configuring the virtual machine during app deployment on Clouddley.
Configuration of virtual machine on Clouddley

Step 4: Configure app settings

  • Insert the name of the application and its port.

  • Click on Next

Configuring App settings (name and port) during app deployment on Clouddley.
Configure the App name and port
circle-info

The firewall of the virtual machine should allow access to the application port.

Step 5: Configure Environment Variables

  • To add environment variables, click on βž• Add Variable

  • Choose an ENV mode, which can be either single or import variables. Learn more here.

Image showing the single variable ENV mode on Clouddley.
Single variable ENV mode
  • Add the key-value pairs and click on Save

  • Click on Next

Image showing environment variables added during app deployment on Clouddley.
Adding environment variables

Step 6: Set up Notifications (optional)

  • To configure the notification settings of the application, click on βž• Add Alert

  • Select the Alert type. For this tutorial, we will set up Email alerts.

  • Toggle on the buttons of the deployment event (failed, timed out, or success) you want to be notified of.

  • Enter the Email address where you want to receive alerts. (You can add multiple email addresses)

  • Click on Save

  • Click on Deploy

A gif showing how to set up notifications on Clouddley.
Notifications set up and creation of Express.js application on Clouddley

Step 7: Test and Verify the app

  • Click on Go to Dashboard. Your app will be visible on the apps dashboard.

  • After the app deployment is complete, the app status changes from Deploying to Online

An image of the overview of a successfully deployed Express.js application on Clouddley.
Express.js application dashboard overview
  • Click on 🌐 Website at the top right corner of the page, which opens the URL of the deployed application in your browser.

  • You can test the application functionalities.

An image of the Express.js application running from Clouddley on the web.
Express.js application running from Clouddley on a cloud virtual machine

The Express.js application has been successfully deployed on Clouddley with a Dockerfile. You can manage it from the application dashboard by selecting the three-dot menu (…) in the top-right corner, where you will find options to Edit, Instant Rollback, Scale, Pause, or Delete the deployment.

Additionally, you can navigate through the dashboard tabs to:

  • View deployment history

  • Access and download logs

  • Add a custom domain

  • View and manage environment variables

Conclusion

Following these steps, you have successfully deployed an Express.js application with a Dockerfile on Clouddley. This method ensures a consistent, scalable, and efficient deployment workflow. Check out the source code for this application herearrow-up-right.

Last updated