node --version
npm --version
docker
node
and npm
are installed, create a new directory with
mkdir [app_name]
- replacing [app_name]
with the name of your application.
Next navigate into the directory with cd [app_name]
and run the following
commands:
npm init
npm install express
app.js
at the root of the
folder and use the following to set up an endpoint for your application:
app.js
file, create another file called Dockerfile
in
the root of your folder, and add the following contents:
docker build -t image .
docker run -d -p 80:80 image
node --version
npm --version
mkdir [app_name]
cd [app_name]
app.js
file with the content above
Dockerfile
file with the content above
docker build -t image .
docker run -d -p 80:80 image
FROM vm/ubuntu:18.04
The FROM
instruction tells webapp.io what base to use to run tests from. There can only
be one FROM
line, and in this case we’re using the ubuntu:18.04
virtual
machine image.
If you’re familiar with AWS Ec2 Instances, this is similar to creating a virtual
machine from the ubuntu 18.04 image.
RUN
instruction will run the given script,
and fails the Layerfile if the script fails. In this case, we’re using the RUN
command to install the dependencies we need to build and run the Express
application in Docker.
In this case we’re using the RUN
instruction to download Docker.
COPY . .
The COPY
instruction moves files from your
repository to the virtual machine. The Layerfile will pick up on the files in
the repository that you are making the commit for, and will copy those files
into the virtual machine so you can run you project.
RUN docker build -t image .
Similar to the RUN
commands above, this will execute the given script
docker build -t image .
, which will install build the Docker image for the
Express app.
RUN docker run -d -p 80:80 image
Similar to the RUN
commands above, this will execute the given script
docker run -d -p 80:80 image
, which will run the Docker image that was
previously built.
EXPOSE WEBSITE http://localhost:80
The EXPOSE WEBSITE
instruction
creates a link to view the virtual machine at a specific port. We use
EXPOSE WEBSITE
to expose the virtual machine on port 80 which is where the
Express application runs after running ng serve
. We use EXPOSE WEBSITE
here
so we can get a link to our Express app to share with stakeholders involved in
our projects.
Layerfile
(no file extension) in the root of your Express
application. If you haven’t already, install webapp.io onto your repository
containing your Express app. Once done, simply create a commit and push your
Express app to the repository with the new Layerfile. Webapp.io will pick up on
the Layerfile and build your Express application according to the steps in your
Layerfile.