►
From YouTube: GitLab Runner Open Office Hours - January 17th, 2020
Description
On this call Steve from the Runner team reviewed the merge request of a member of our wider community who was also on the call.
Topics covered were:
- Review https://gitlab.com/gitlab-org/gitlab-runner/merge_requests/1590
- Discuss bash on Windows for Docker executor https://gitlab.com/gitlab-org/gitlab-runner/issues/4725
- Helper images, what are they and where are they
- How to build the helper images for Windows
- What git we are installing
- Windows development environment for the Runner
- Powershell 6
A
B
B
A
I
mean
guess
we
should
get
started
because
we
don't
know
what
to
expect
here.
Unless
anyone
thinks
we
should
wait
a
couple
minutes.
We
just
can
introduce
the
call
and
explain
the
plan
so
whoever's
working
the
recording
hello.
This
is
a
runner
first
ever
open
office
hours,
it's
Friday,
January
17th.
A
B
Relationship,
oh
no
yep!
That's
right!
As
long
as
the
work
communities
in
there
somewhere
that
that.
A
So
right
now
we
don't
have
anyone
else
on
the
call.
No,
this
is
an
open
call,
so
the
links
and
I
share
it
out
on
Twitter
the
first
ones.
We
might
not
get
anyone
joining
with
no
idea,
and
so,
unless
there's
anything
else,
anyone
else
wants
to
bring
up
plan
to
start
with,
it
was
just
to
hang
out
and
watch
Steve.
B
Yeah
and
I
think
it's
it's
worth
noting
I
hope
you
don't
guys
don't
mind
sharing,
but
before
Steve
gets
started,
I
think
I
mean
you
guys.
I
mean
dedicate
quite
a
bit
of
a
big
portion
of
you.
The
time
like
looking
at
like
community
contributions
on
the
Reiner
team,
I
think
you
had
a
pretty
ambitious
goal
of
like,
like
you
know,
15
to
20
percent.
If
not
more,
that
I
mean
people
like
Thomas
and
Steve
are
looking
at
community
contribution.
B
A
Sure,
thanks
for
calling
that
up,
we
do,
we
do
have
a
huge
backlog
that
that,
frankly,
is
is
not
in
the
state
where
we
want
which
it
was
like.
We've
all
contributed
to
open
source
projects.
We
know
how
frustrating
it
is
when
you
don't
get
a
response
or
nothing
happened
to
it
for
a
while.
That
is
the
state
with
many
of
our
community
in
Mars
right
now,
but
a
team.
Everyone
on
the
team
has
a
goal
of
spending
20%
of
every
week,
reviewing
community
Mars.
Obviously
there's
some
fluctuation.
Oh,
that
was
fun
correct.
A
If
we
can
answer
questions
before
someone
writes
the
code,
that's
probably
gonna
save
everyone
time,
not
just
ourselves
on
the
review,
but
also
that
person
contributing,
but
also
give
people
a
kind
of
inside
a
window
until
I
walk
goes
into
these
reviews
and
like
how
things
we
look
for
and
to
try
and
like
speed
things
up
that
way,
possible
plus
I
think
it's
just
mean
super
fun.
So
there's
that.
C
D
D
E
D
E
Windows
on
Doka
Doka,
on
windows,
who
I've
been
working
on
this
docker
on
Windows,
is
the
fact
to
an
Windows
container
with
docker
and
because
in
my
company
we
have
a
lot
of
windows-based
CI
and
we
are
struggling
a
lot,
maintaining
the
neutral
machine
templates.
So
we
have
those
of
to
install
in
our
dance,
install
manually
with
setup
click
click
next
next
next,
and
so
we
try
to
ensure
is
that
and
we
think
that
the
best
way
to
enjoy
that
too,
is
to
go
with
docker.
E
So
that
means
the
smallest
common
denominator
is
to
use
bash.
So
we
are
trying
to
use
bash
for
with
with
windows.
We
have
other
mesh
requests,
trying
to
use
a
bash
for
windows,
but
with
shell
executor,
and
we
didn't
want
to
invest
that
much
into
that
one,
because
you
know
shell
executor
is
not
very
very
good,
and
so
we
would
prefer
to
to
go
straight
to
dukkha.
E
So
this
is
the
whole
concept
which
is
quite
long
to
describe
in
your
ml
description.
Sorry
about
that,
and
so
basically
what
I'm
trying
to
do
is
this
mm
is
to
enable
the
fact
that
we
can
use
bash
in
on
Windows
at
the
moment
on
dock
on
Windows.
It's
up
coded
that
you
use
PowerShell
and
so
I
looked
at
white
was
hard
coded
and
how
it
is
possible
to
make
that
configurable.
E
D
E
A
E
C
E
The
one
that
is
by
default
and
then
there
is
an
executor
command
windows,
which
is
the
one
for
shells
for
shell
script,
so
basically
predefined.
Shell
is
actually
the
shell
for
the
predefined
image,
which
is
also
known
as
the
helper
image.
Okay
I
choose
predefined,
because
this
is
what
whatever
there
was
in
the
code.
Predefined
image
is
how
elbowing
is
helper.
Image
is
called
in
the
code.
E
D
E
D
The
environment
behaves
differently
and
like,
as
he
said
like
to
have
windows
bash
installed
on
windows.
There
might
be
some
things
that
don't
work,
so
there
are
a
few
things
we
need
to
take
in
consideration
first
thing
as
if
all
our
scripts
will
work
on
a
Windows
Phone
running
bash,
now,
I,
don't
like
having
the
reason
I
don't
like
having
to
make
sure
of
our
show
scripts
and
bash
scripts
on
the
same
job
as
it's
gonna
have
a
few
problems
like
maintainability
wise,
like
we
have
to
keep
in
mind
or
is
there's
a
bash
script.
D
D
D
E
D
Right
but
right
now
we
do
not
have
any
we're,
not
spies
right
now.
All
our
logic
expects
that
one
job
runs
one
shell
script,
having
one
job
running
different
shell
scripts
might
cost
problem
self
I
cannot
think
of
right
now
and
even
code,
but
like
we
need
to
think
of
every
code
that
is
possible
and
testing
wise
might
be
hard.
D
D
There
might
be
a
need
for
having
bath
running
on
Windows
and
it's
something
we
should
investigate,
but
I
don't
think
having
a
job
running
two
sets
of
languages
even
after
on
two
different
environments:
two
different
containers:
it
can
get
confusing
as
a
maintainer
to
see
okay,
that
the
script
actually
run
on
PowerShell
or
that
the
spectrum
on
bash,
unlike
we
need
to
take
in
consideration
other
things
like
air
handling
and
things
like
that.
That
might
not
be
ideal.
So.
E
Yeah
I
don't
understand
because
you
already
have
an
abstraction
of
under
actual
shell
data,
which
is
very
my
opinion,
quite
good,
and
we're
separated
and
I
haven't
seen.
I
think
it
is
pretty
well
abstracted,
so
I
haven't
seen
any
code
pass
that
could
pose
issue
to
have
different
shell
between
the
the
the
predefined,
the
predefined
shell
job
and
the
rest,
and
I
have
done
well.
I
have
this
running
in
my
production
for,
like
since
I,
have
predicted
through
performance
and
has
really
been
going
very
well
and
no
issue
now
I.
D
Understand
but
like
we
have
to
keep
in
consideration
mr.
stris,
what's
at
the
moment
happening
in
the
future
as
well,
because
imagine
we
have
to
add,
for
example,
we
in
the
pipeline
down
the
pipeline.
We
have
PowerShell
section
407
support.
We
have
to
keep
now
when
we
add
support
to
that
now.
We
have
to
keep
make
sure
that
every
job
runs
two
different
sets
of
space,
how
it's
going
to
work
and
how
it's
going
to
react.
D
So
it's
an
extra
team
to
think
of
again
I'm,
not
saying
that
bus
should
not
run
on
Windows
I'm,
saying
that
if
we
want
to
run
bash
on
Windows,
we
should
do
it
all
the
way,
not
just
half
of
it,
because
this
one
is
gonna.
Add
like
it's
here:
the
predefined
shell,
for
example.
The
word
predefined
right
it
predefined,
is
only
really
well
known
for
the
talker
executors,
but
any
other
executors
and
I
know
we're
not
using
it
and.
D
E
Basically,
I
introduced
that
so
that
I
wouldn't
have
to
modify
the
predefined
image,
which
is
already
I,
think
a
bit
complicated
for
Windows.
So
you
want
to
go
that
path.
I
think
that
Bash
is
not
in
the
path
of
the
helper
and
it
was
very
complex
for
me
as
a
non-jew
tab
to
change
the
helper.
Also
I
didn't
go
that
path.
Maybe
this
could
be
more
for
you
as
a
maintainer
to
modify
the
helper
to
also
have
the
bash
or
actually
the
bash.
D
D
That's
why
I'm
telling
you
all
these
points.
We
need
to
keep
in
mind
so
because,
yes,
we
can.
We
should
probably
installed
update
alper
image
to
support
brush.
When
shell
is
configured
for
path,
we
should
define
all
skirts
to
be
bash,
and
here
we
would
remove
this
predefined
shell
mechanism
and
we
do
not
introduce
any
new
mechanism.
The
only
mechanism
we
need
to
introduce,
as
for
the
docker
windows,
executors,
to
know
that
not
hard
code,
the
PowerShell
configuration
anymore
so.
E
D
E
D
So
change
wise.
That
would
be
a
lot
simpler
right
change,
wise.
It
will
be
just
a
matter
of
updating
the
image,
doing
a
new
helper
image
and
then
just
to
find
the
configuration,
and
hopefully
that
would
be
it
right.
So
maintainability
wise,
it's
gonna
be
much
simpler
and
here
I
see
it.
What
my
biggest
issue
would
be
with
this
current
code
would
be
that
were
leaking
an
abstraction
here,
so
we're
leaking
the
domain
of
a
predefined.
What's
a
predefined,
so
common
belt
is
everything.
D
C
D
B
D
The
head
pyramids
just
support
bash
out-of-the-box.
It
would
be
easier
because
then
the
user
just
has
to
define
a
shell.
It
was
bash
and
it
will
work
automatically
and
as
a
maintainer
thanked
me
and
Tomas
and
Georgie,
it
would
not
be
an
extra
code
path
that
we
have
to
think
about.
That
would
be
just
an
extra
system
that
we
have
to
support
an
extra
software
that
we
have
to
install
on
our
helper
image,
so
even
code
wise,
it
would
be
much
much
simpler.
Does
that
make
sense,
yeah.
E
D
D
D
But
yeah
that's
another,
for
example
follow-up
issue
or
it
can
be
part
of
this
issue,
but
this
issue
would
be
just
adding
support
for
porn
star
or
a
channel
6,
and
then
I
would
say
we
would
have
another
issue
for
adding
PowerShell
to
or
t-helper
images,
either
to
the
existing
one
or
creating
a
new
hyper
image
will
Candice
that's
why
I
would
like
to
have
it
on
a
separate
issue.
So
we
can
discuss
the
technical
details.
What
would
be
the
benefits
of
having
it
and
the
same
image
or
in
a
different
image?
D
Okay,
the
fun
part
about
the
helper
image,
as
we
start
that
image
on
and
off
multiple
times
per
job
like
three
or
four
times
per
job,
so
the
bigger
the
images,
the
slower
it's
gonna,
be
right
exactly
so.
If
we
probably
have
two
separate
images,
it
might
be
worth
just
because
that's
how
how
big
PowerShell
is
like
I
do
not
know
any
details
on
that.
So
that's
something
we
would
have
to
investigate
and
that's
why
I
would
say
on
a
separate
issue:
support
for
PowerShell
six
access.
E
Make
sense
so
it
was
just
this
ml
was
capable
of
doing
two
in
one
and
then
we
can
also
select
different
predefined
image
according
to
the
shell
that
is
considered
by
the
user.
Oh,
you
can
put
both
shell,
maybe
it's
who
you
have.
We
have
per
share
for
our
shell,
six
and
I.
Think
that's
it.
The
three
shell
data
are
supported.
Some
of
you.
We
don't
want,
we
multiplied
and
enough
image
by
three.
So
that's
your
so
now.
How
can
I
help
to
make.
D
D
E
D
E
D
E
A
D
D
Restrain
those
images,
so
we
have
two
script,
just
something
you
would
have
to
do
on
your
environment
as
well
to
build
it
locally
and
toss
it
locally.
We
have
specific
environment
viable
stuff.
We
have
to
start
to
build
the
image
so,
for
example,
here
we're
starting
to
get
version
the
build
the
checksum,
alphas,
checksum
and
so
on
and
so
forth,
and
then
it
will
go
around
and
built
everything,
so
it
will
automatically
pull
to
get
versions
now.
I
know
we
not.
E
D
D
D
D
D
D
D
E
E
You
know
a
window
with
the
MCS
to
terminal
and
then
running
bash.
That
is
instead
of
that.
So
this
is
called
git
bash
dot,
easy
and
then
you
have
basket
in
Z,
which
is
actually
the
blue
bash
compiled
for
Windows,
so
I
never
verified
is.
If
what
is
stated
in
the
nougat
package
is
the
removed,
git
bash
or
the
remove
the
full
batch,
but
I
don't
think
that
it
will
actually
work
without.
D
C
D
D
B
D
E
I
have
the
exact
method
to
make
it
work.
You
know
controller,
but
actually,
which
is
interesting,
is
that
in
Windows,
even
if
you
are
using
docker,
there
is
a
minimal
UI
that
is
like
off-screen
and
I
was
x.
Squared
when
running
all
my
Dockers
for
on
Windows
experimentation,
I
really
fear
that
I
had
more
issue
with
the
UI,
and
actually
this
is
often
quite
working.
Well,
even
if
there
is
a
window
that
is
open,
it
will
work
Windows.
We
say:
ok,
I
open
a
window
of
screen
no
problem.
D
E
D
D
Like
a
good
plan,
so
I
will
write
an
explanation
yeah
of
what
we
are
gonna
do
now
the
real
question
comes,
and
do
we
actually
want
to
support
bathroom
windows
from
your
experience?
How
different
is
bash
on
Windows
and
I
know
we
have
some
so
I've
been
talking
to
one
of
our
solutions.
Architect,
for
example,
that's
been
working
with
some
customers
that
wants
to
run
our
tests
scripts
on
Windows
right.
E
E
D
E
There
is
a
it's
indeed
quite
complicated
and
we
spend
a
lot
of
time,
isn't
me
that
they
are
actually
like.
I
said
in
the
beginning,
a
3
version
actually
for
with
WSL,
which
we
didn't
actually
tried
in
the
CI.
So
there
is
cygwin,
because
cygwin
is
the
most
ancient
version
of
bash
and
cygwin
is
based
on
it's.
Actually,
we
implementing
POSIX
API
on
top
of
Windows,
and
this
has
a
lot
of
issues,
especially
for
a
fork.
So
in
UNIX
you
have
the
Cisco
and-
and
this
is
call
as
no
equivalent
in
windows
in
Windows.
E
You
have
like
something
like
read:
process,
which
is
the
equivalent
of
4
plus
exec,
and
so
the
semantics
it's
supposed
to
duplicate
the
process
and
and
then
have
the
exact
same.
You
know
memory
the
memory
shared
and
copy-on-write,
and
so
there
is
not
at
all
such
kind
of
a
thing
in
Windows,
so
they
need
to
do
quite
hack,
which
is
long.
E
E
We
are
using
custom
script
to
fetch
our
sub
modules
and
we
are
asking
a
lot
of
instability
with
this,
which
were
already
to
the
fact
that
bash
on
did
the
git
version
in
sequin
was
actually
running
the
bash
green,
which
is
the
cygwin
version
of
bash
and
which
is
not
horrible.
So
this
is
cygwin,
don't
use
it.
E
There
is
MCS
and
emcees
it's
same
as
cygwin
the
the
fact
to
try
to
compile
and
use
as
much
as
possible
of
the
UNIX
tools
on
Windows,
but
the
difference
is
that
they
actually
run
the
compiled
as
much
as
possible
the
Windows
version
of
the
tools.
So
those
this
Windows
version
will
not
choose
the
POSIX
emulation,
but
there
can
use
the
Windows
system
call.
So
those
tools
have
a
bunch
of
you
know:
just
define
shop,
define
Windows,
then,
if
def
Windows,
then
you
call
windows
and
else
equal,
the
POSIX,
so
basically
MCS
so
bash.
E
The
issue
with
this
is
it's
really
a
linux
emulation
layer,
and
so
you
are
not
really
in
the
same
file
system,
and
so
for
me,
it's
too
dangerous
to
use
that
and
in
my
experimentation
it
hasn't.
Quite
you
especially
when
you
have
to
you
know,
make
stuff
in
in
the
true
on
diamond.
So
WSL
is
good
if
you
want
to
develop
some
Linux
thing
on
Windows,
so
it's
I
mean
it's
better
than
no
car,
because
you
don't
have
the
VM
emulation.
E
So
when
it
works,
it's
it's
a
bit
faster,
but
I
think
it's
better
to
just
use
him
MCS
for
running
those
and
if
it
works
with
in
for
Windows,
then
that
is
that
is
best.
So
on
get
for
Windows.
What
you
don't
have
is
some
of
some
tools
that
are
not
needed
for
and
indeed
the
first
one
that
come
in
mind
that
has
been
missing
for
some
of
our
people
is
find
you
don't
have
a
find
insider
guitar.
So
if
your
passwords
are
using
fine,
so
then
we
need
to
install
the
lenses.
The
real
version.
E
D
D
E
D
E
Basically,
I
just
need
to
clone
and
I'm,
not
on
Windows
and
I
started
to
copy
from
there.
Actually,
my
workflow
is
to
end
Ducati
directly
on
the
Mac
which
works
with
has
been
working
from
image
data.
I,
don't
know
if
you
have
this
workflow
as
well.
Did
you
try
to
directly
point?
You
know
you
don't
curl
it.
You
say
doaker
bill,
minus
H
and
then
you
want
Duke
you're,
a
Windows
machine.
Did
you
try
this
workflow.
D
E
D
D
E
D
E
B
I
was
gonna,
suggest,
I
mean
in
about
a
month
from
now.
We
have
two
hackathon
that
runs
on
Wednesday
and
Thursday
like
Thursday,
like
you
know
same
time,
8:00
a.m.
or
even
an
hour
earlier.
I
don't
know
Elliott
you're
gonna,
like
that
whole
lot,
but
we
could
talk
about
this
over
slack,
but
we
might
get
more
people
to
join
during
the
hackathon,
so
yeah
I.
A
C
E
E
B
E
B
Like
yeah
I
mean
it's,
it's
no
different,
like
your
levels,
I
mean
people
are
certainly
aware.
The
hackathon
is
happening,
but
even
with
or
without
outside,
of
hackathon
and
I
think
engineers
like
Tomas
and
and
Steve.
That
is
a
really
good
job
of
supporting
mrs,
but
I
mean
there's
like
a
more
attention
paid
to
it
over
the
two
day
period.
I
guess
okay.
B
E
On
this
hackathon
and
to
also
spend
maybe
one
day
discussing
with
you
guys
with
the
you
know
the
most
thing
that
we
would
like
to
do,
but
you
didn't
get
ever
get
the
chance
to
actually
start
working,
working
on
and
I
think
really
discussion
with
core
developers.
Like
laugh
like
this
I
mean
we,
we
have
been
huge
progress
just
by
just
talking
so
I
can.