Skip to main content

Packaging a Static Website with Dockerfile and pushing to DockerHub

 Want to read this with better formatting? Of course you do; Check out the page on Notion!

 

What's in the image?

A simple static webpage I had created for fun a few months ago. I knew it would come in handy!

What did I do?

  • Used demo static webpage for testing.
  • Created Dockerfile

💡 It should be Dockerfile, no extension. Dockerfile.Dockerfile is incorrect!

  • Used nginx Alpine as server and the following code:

 FROM scratch as static-site 

WORKDIR /app 

COPY . . [#to same directory]

FROM nginx:1.16.0-alpine as server

 COPY --from=static-site /app /usr/share/nginx/html 

EXPOSE 80 [#For web access]

CMD [ "nginx", "-g", "daemon off;"]

 From Mwiza Kumwenda (see resources below).

 

CMD [ "nginx", "-g", "daemon off;"]
 
 

 

I wondered if I should use "start" in the CMD [ "nginx", "-g", "daemon off;"] list/tuple, but it worked to package the image without it

 Actually, pushing the image required me to start it as a container and then package the container, otherwise, you're met with the following error messages;

Error Pushing to Docker Hub:

An image does not exist locally with the tag username/staticapptest an 'denied: requested access to the resource is denied', 'failed to read dockerfile:
open /var/lib/docker/tmp/buildkit-mount267173172/Dockerfile: no such file or directory'

It seems odd to me, but I'm not a Docker Developer, I'm sure they have a good reason for this!

The Fix

  • Creating the image as a container and then pushing it works

Steps Taken:

  1. Package app (above)
  2. Run the Image
  3. Take the Image ID and run within a container;
776442dod12   libtest:latest   "nginx -g 'daemon of…"   18 seconds ago   Up 13 seconds   0.0.0.0:80->80/tcp   hopeful_thompson
  1. Commit the container;
docker commit 776442dod12   <name>/libtest:<tag>
  1. 5 docker images reveals;
libtest            latest    776442dod12   25 hours ago     29.4MB
  1. Then I push it to my DockerHub;

 And it works; Check it out publicly here.

Make Sure...

  • You're in the right directory with the file. 
  • The file is simple Dockerfile, not Dockerfile.Dockerfile. 
  • The image is run in a container before you package.

 

Resources used:

 

Comments

Popular posts from this blog

Making KPI Dashboards with PowerBI

 While this is the free tier, I cannot share or collaborate with others, nor can I publish content to other people's workspaces, but they will not stop me from screenshooting and recording these self-taught adventures,so! I'm doing this because I idly searched "Mattel careers" and "Information Technology", and seeing a bulletpoint saying the following: Analytical and reporting skills such as creating dashboards and establishing KPIs such as experience with PowerBI, Cognos, Tableau, and Google Data Lake/AWS is preferred And thought "Well, I've used Tableau, and I've heard about PowerBI,  even if its in-demandness is questionable , so how similar is it? And can I write about it?"  First, PowerBI (PIB) does have a downloadable, local version, but apparently Windows-only. I could download the .exe but I couldn't run it / drag it to applications on my MacBook.  Not a problem, we'll use the online SaaS version, and a dataset found here, ...

A 2-week Trial of T-Mobile Home Internet

     The Xfinity app showed usage of the past 3 months: We used less than 40% each month, for about $80 USD a month.   No thanks! That cuts into the movie budget! Before we save some money (about $15/mo), let's test how T-Mobile Internet unlimited data works for 2 weeks.    There are 15 devices for this test; Smart TVs: 4 Laptops: 4 Printer: 1 Smart Home Speakers: 3 Game Consoles: 1 Phones: 1 (There are other phones in the home but they stick with data) Other: 1 Total : 15  I made tables for 3 entries a day across 3 days to test the Xfinity service we have. Here's one;   Xfinity is pretty speedy - Download times are between 227 - 236 Mbps, Latency between 24.5 - 25.5, Jitter between 5 - 6.68, and 0 packet loss.  Let's quickly define the terms in the table;    Date/Time - The date and time of the data gathered. Download (Mpbs) - How fast your network gets data. Upload (Mbps) - How fast your network uploads data. Latency ...

Recon and SSID - Mapping With VisiWave Site Survey

My laptop is refurbished. I've written about how there are a few ... quirks. Being a technology professional, I felt okay with adopting an older machine, knowing I had the skill to fix moderate issues. From dying drivers to monitor massacres, I've ID'd, solved, and documented a lot of issues.  The newest one was my Wi-Fi adapter dropping the connection to a specific extender. While troubleshooting, I was curious about doing recon of WiFi networks and broadcasting devices anyway. That issue? A power setting. It was so determined to save power, it would disconnect. The extender is also flirting with the older end of 6 years old.  The battery needs to be replaced, but that's new to me. As a Windows laptop, there are a plethora of options to pick. How do you decide which one is safest?  I am suddenly concerned about this despite having 3 unofficial, 15$ Macbook Air chargers from eBay, and no explosions. But let's move onto the Site Survey - Where can I find the stronges...