Starfighter Starfighter

DO180 (v4.6) Chapter 5, Section 6 lab issues

Once again I am approaching this from the perspective of someone teaching this class in an academic setting where the students probably won't have a lot of experience yet. (That's why they're taking the class, to learn something about the technology, to get the job, to get experience.)

First, the student is told to review and edit the Containerfile file that was created by the start script, which has the following pre-populated:


In the instructions, they're told to do this:


However, there is nothing to change as it is already in the Containerfile - as seen in the solution:


The issue is that the student is being directed to change something that doesn't need to be changed. If they're trying to do the lab without looking at the solution, this can be very confusing.

Also (and I get that someone with experience would know this but, again, we're dealing with students that will most likely be seeing this for the first time), it isn't explained in the material leading up to this lab that a variable set using ENV instruction can then be used later in the Containerfile.

For example the PORT variable is set on line 3. It is then used (as ${PORT}) in the RUN instruction and again when the EXPOSE instruction is configured.

In my humble opinion, from an educational point-of-view, this violates two principles: (1) do not assume prior knowledge and (2) do not introduce new concepts in an assignment designed to be used as an assessment of knowledge - especially one designed to be a summative assessment for chapter (or class).

Program Lead at Arizona's first Red Hat Academy, est. 2005
Estrella Mountain Community College
0 Kudos
1 Reply

Re: DO180 (v4.6) Chapter 5, Section 6 lab issues

@Tracy_Baker -

Thanks for bringing this up and pointing out some of these items. I definitely am in agreement with you with respect to the Solution instruction 1.6 as there is nothing to do there. However, I think what is done here is that we are assuming they might not be as great on the RHCSA skills as we would like for this course (even though we want them to have RHCSA level skills as a pre-req).

In terms of the ENV (environment variable), I somewhat disagree. You are correct in that it might be "less clear", however, we do discuss the ENV usage in the Dockerfile/Containerfile instance as part of the lecture and this is an extension. Furthermore, the lab exercise solutions are only one way that the lab can be solved.

I would take things one step further and possibly suggest an update to the wording to say verify ... because in saving a bunch of typing, the RUN line actually provides updating the configuration file as well as changing ownwership.

When I deliver courses, I typically have a demo that isn't showing in the book so it can be shown how some of these things work from different viewpoints and perspectives. I also use this to discuss the different layers of the image. So since the ENV PORT is defined early on, it can be used as an environment variable in the running container or in any step of the Dockerfile that is after its initial definition.

It is also important to point out the additional references that are always at the bottom of the sections. This has additional information regarding the various parameters and their usage in the Dockerfile. Please keep in mind, that this is also considered "Fair game" and knowledge a student should posses after going through the section and the chapter.

Hope this helps,


Travis Michette, RHCA XIII
Red Hat Certification + Training
0 Kudos
Join the discussion
You must log in to join this conversation.