Docker Build Error – Temporary Error (try again later)

When building a new Docker image from Alpine 3.6 (RUN apk –update add –virtual build-dependencies gcc ...), I encountered the following errors:

I found 2 separate solutions to work around these errors.

  1. Utilize “–network=host” when building the new image.
    • This option will force the Dockfile’s “Run” instruction to use the Docker host network stack
  2. Set the Docker DNS server globally on the build host.  Add “-dns x.x.x.x” to the DOCKER_OPTS variable.  After you make this property change, you will need bounce the Docker daemon.

I’m also going to try to update my Dockerfile to work around this issue, but wanted to get this info documented before I forget.


AWS DynamoDB Throughput Capacity

Calculating throughput capacity!

Read capacity units

  • 1 strong consistent read per second up to 4 KB item
  • 2 eventually consistent reads per second up to 4 KB item

Write capacity unit

  • 1 write per second for an item up to 1 KB in size

Example: 1000 writes per 10 seconds @ 512 bytes evenly distributed.

Solution: 1000\10 = 100, 512 bytes rounded up = 1 KB, 100 write units

Good certification exam information… 🙂


DevOps Interview Questions

Are you interested in applying for a new job?  Possibly a job in the DevOps field?  Or even hiring for a DevOps related position?  If so, read on….

The meaning of DevOps and the tooling associated with it differs depending on who you talk too or what company you work for.  Personally, I think the following categories cover many aspects of what a DevOps interviewee should be familiar with. (Obviously its not possible to be a expert in each one….)

  • Cloud (AWS, Azure, Heroku)
  • Orchestration (Ansible, Puppet, Chef)
  • Agile (Scrum, Kanban)
  • Programming (Python, PowerShell, Java)
  • Containers (Docker, Kubernetes, Swarm)
  • CI\CD Tools (Jenkins, Git, TFS, Ant, Maven)
  • Collaboration (GitHub, Slack, Forums, Blogs)

For the benefit of others and myself, I am going to start a github repo with some sample DevOps questions in the above categories.


Heroku + Slack = ChatOps

Heroku is a great PAAS offering.  It has a nice free tier that allows you to deploy an application publicly with little effort.

Heroku also has nice integration with Slack.  It reminds me of the VSTS Slack Bot I blogged about earlier.  With Heroku\Slack you have the ability to deploy GitHub code to a Heroku app using a deployment flow or Pipeline promotion.

Note: You must have your code in GitHub and a valid Heroku account.  After you setup the Heroku ChatOps, you will need to login to both GitHub and Heroku using the “/h login” command from Slack.


From here, you will have the ability to deploy\promote.  Below are the current options you have.


So this is pretty cool!!  If you have Slack on your phone, you’ll be able to deploy\promote from pretty much anywhere!


AWS Linux 2 – VirtualBox

So you want to run the AWS Linux 2 OS on your laptop for development purposes?  Its no problem now!

I followed the instructions (here) to get Linux 2 running with a VirtualBox VM.

These are the high-level steps I took.

  1. Create a cloud-init configuration ISO
    • Create my user-data and meta-data files
    • Validate the user-data YAML file syntax in a validator (important)
    • Create a new ISO with these 2 files on a linux server using genisoimage
      • genisoimage -output mySeed.iso -volid cidata -joliet – rock user-data meta-data
  2. Download the latest Linux 2 vdi file from AWS
  3. Copy the ISO file back to my Windows machine
  4. Create my new VM in VirtualBox (Linux\Other Linux 64-bit) using the new ISO and the downloaded vdi
    • IDE Primary Master = Linux 2 vdi file
    • IDE Secondary Master (Optical) = mySeed ISO file


Now you should be able to startup your VM and connect via any user defined in your user-data file.


Dojo Learning – My Experience

So what is Dojo Learning?  The concept originated at Target as an immersive learning approach to help drive agile adoption.

For a great explanation, please read “The Target Dojo“.

Below are some thoughts from my experience in a Dojo learning program.

  • You are in the Dojo for 2 things.
    • Learn and develop Agile skills
    • Deliver on current work initiatives that add customer value
  • You must enter the Dojo with an open mindset and be willing to break old habits and adapt new ones.
  • The Dojo rooms themselves allow all team members to sit together in a collaborative environment.  Monitors can be setup to accommodate remote users as needed.
  • The Dojo will usually have a dedicated coach\guide to help facilitate the Agile transformation journey.
  • The team must be able to self-organize and adapt.  A key concept of Agile is the ability for a team to be agile itself.
  • During the Dojo journey, the team will focus on learning Agile methods through shorter iterations, thus giving the team more repetitions.
  • The Dojo journey is usually 1 – 2 months
  • The initial iteration length is usually 2 – 3 days long, not 2 – 3 weeks.
  • The shorter iterations allow for more experimentation and learning, thus allowing the teams to pivot more quickly.  (MVP)

This is a great way to facilitate learning and seems to really bring energy to the teams!