►
Description
This video provides an overview of the setup and configuration required in GitLab Runner to use Podman as a drop-in replacement for Docker when GitLab Runners is configured to use the Docker executor.
https://docs.gitlab.com/runner/executors/docker.html#use-podman-to-run-docker-commands-beta
A
Hello,
my
name
is
daryn
eastman
and
I'm
the
senior
product
manager
for
getlab
runner,
sas
core
inflate.
Welcome
to
a
demo
video
showing
the
setup
and
use
of
podman
as
a
drop
in
replacement
for
docker.
When
gitlab
runner
is
configured
to
use
the
docker
executor
on
lyrics
in
the
video,
we
will
cover
an
overview
interaction
diagram
of
run
run
podman
in
the
example
gitlab
brother
and
podman
are
installed
on
a
virtual
machine
running
ubuntu
I'll
also
briefly,
touch
on
the
prerequisite
installation
steps
for
both
get
lab
runner
and
partner.
A
Finally,
I'll
demonstrate
building
a
container
image
using
podman
and
then
also
using
builder
as
a
container
runtime.
These
pipelines
will
be
executed
on
the
runner
that
we
previously
configured
to
use
partner.
Okay
before
we
get
started,
then
let's
do
a
quick
overview
of
what
a
final
step
looks
like
with
a
diagram.
A
This
is
a
representation
of
the
environment,
setup
folder
that
I'll
be
using
for
the
demo
again.
I've
previously
installed
gitlab
runner
on
a
host
of
vm,
that's
running
2.2
linux.
A
I've
also
installed
part
one
as
well,
and
the
important
thing
to
note
in
this
diagram
is
that
github
runner
is
going
to
be
communicating
to
podman
or
with
podman
using
the
api
socket
and
that's
the
key
thing
we've
been
looking
at
when
we
get
into
configuration
steps
and
it's
basically
how
to
use
setup
gitlab
runner
in
order
to
initiate
that
communication
to
podman
via
that
api,
socket
string
and
so
to
recap,
the
steps
that
you're
going
to
be
required.
If
you're
going
to
be
doing
this
in
your
own
environment
and
from
scratch
so
step
one.
A
Obviously,
installing
gitlab
runner
on
the
target
host
compute
that
you're
going
to
use
for
for
hosting
the
runner
and
over
here
on
the
right
hand,
side
I've
linked
over
to
the
installer
docs
I'll,
show
that
briefly
here
in
a
moment
as
well
step,
two
you
install
apartment
as
well,
because
you're
gonna
be
using
partner
in
place
of
docker
as
the
as
the
engine
for
the
on
the
gitlab
and
docker
executor.
A
Change
I'll,
show
you
what
that
change
looks
like
here
in
the
demo
and
then
finally,
with
all
that
set
up
and
done,
you'll
be
up
you'll,
be
ready
to
actually
then
run
a
test
pipeline
job.
A
The
one
thing
I
just
want
to
to
call
out
is
that
in
step
one
when
we
talk
about
installing
a
github
runner,
it's
assumed
that,
if
you're
doing
this,
you
also
at
this
point
registering
your
runner
to
a
gitlab
project,
grouper
instance,
and
that's
making
the
connection
with
the
runner
that
you've
installed
on
your
host
computing
device
with
a
project
in
gitlab,
so
that
you
can
then
now
run
pipelines
and
using
that
runner
as
the
as
the
execution
engine
all
right.
A
So
I'm
just
gonna
pop
over
really
quickly
and
look
at
the
documentation
pages
so
for
step,
one
installing
gitlab
runner
in
my
environment.
I've
already
done
this
step,
I'm
not
going
to
follow!
I'm
not
going
to
go
over
these
steps
in
the
in
the
demo.
It's
pretty
straightforward,
but
you
can
see
here,
is
our
docs
page
for
installing
gitlab
runner
on
linux,
using
our
deviamo
rpm
packages
in
my
demo
and
in
demo
environment.
I
basically
just
follow
these
steps,
so
there's
no
secret
sauce.
A
There
are
no
special
configurations,
just
basically
following
the
steps
here
for
installing
runner
on
ubuntu
popping
over
department,
so
department
installation
instructions
are
here
on
apartment.io,
again
no
special
source
for
this
demo,
just
simply
using
and
let
me
scroll
down,
so
it's
clearer
simply
using
the
installation
instructions
here
for
installing
podman
on
linux
all
right.
So
that's
what
I've
done
to
get
things
going.
I've
been
to
target
lab
runner
I've
installed
podband
I
registered
get
that
my
gitlab
runner
to
a
project
in
gitlab.
A
So
the
next
thing
you
want
to
do
is
check
the
department
configuration
which
is
kind
of
sort
of
the
most
important
thing
to
get
this
working
in
your
environment.
Let's
go
ahead
and
check
out
that
configuration
so
right
now,
you're,
seeing
the
ss
of
ssh
into
the
virtual
machine.
That
is
the
host
for
my
gitlab
runner
executable
as
well
as
podman.
A
I've
already,
as
I
mentioned
before,
I've
already
installed
both
of
those
onto
onto
this
onto
this
virtual
machine,
and
so
at
this
point
the
thing
you
want
to
do
now
is
check
the
pod
bank
configuration
and
the
command
that
we'll
be
using,
for
that
is
systemctl
status,
dash
user
podband.socket
so
entering
that
command,
and
this
is
the
output.
You
will
get
the
important
string
that
you
need
to
look
at
the
one
that
you'll
need
for
configuring.
Gitlab
runner
is
right
here.
A
This
string
here
is
the
api
socket
string
for
podman
on
this
particular
computing
host
yourself.
Your
string
might
be
different,
and
so
that's
why
it's
important
for
you
to
check
the
string
when
you
install
podban
and
whatever
your
computing
host
is,
and
so
that
is
the
strength
that
I
need
to
then
now
configure
my
gitlab
runner
config.tumor
file
right
so
to
get
that
running
config,
then
thermal
file
is
local
because
I
haven't
so
get
that
runner.
A
It's
local
on
this
machine
to
make
things
easier
for
the
demo,
I'm
just
going
to
like
pull
up
a
version
of
that
same
configuration
file
in
an
ide.
So
it's
a
little
bit
easier
to
see.
So,
instead
of
me,
you
know
popping
into
them
here
on
this
virtual
machine
right
again,
once
you
install
gitlab
router,
the
config.tumble
file
will
be
in
the
end,
the
installation
path
for
your
github
on
a
binary
instead
of
me
opening
up
thing
here.
So
it's
easier
for
you
to
see.
A
I
have
just
copied
over
my
config
the
tamil
file
into
this
ide,
and
I
just
want
to
call
out
now
the
most
important
area
that
you
need
to
change
in
order
to
use,
and
so,
when
you
open
up
your
config.tomo
file
folder
that
you've
installed.
A
A
A
I
ran
a
system
ctl
command
here
to
check
what
my
string
is.
You
can
see
it's
forward,
slash,
run
user1012
and
now
I've
I've
entered
that
into
the
whole
string
here,
and
so
what
this
is
telling
gitlab
ruler
on
this
machine
is
okay,
you're,
going
to
be
communicating
to
the
container
runtime
engine
using
this
api
software
string,
runner
doesn't
know,
it's
podman
doesn't
know
it's
it's
docker.
It
just
knows
that
hey.
A
This
is
the
api
string
and
it
just
so
happens
that
this
api
string
is
obviously,
of
course,
you
know
going
to
be
interacting
with
podman,
and
so
this
is
where
the
magic
happens.
You
basically
just
need
to
enter
this
line
into
your
conflict.
The
terminal
file-
you
save
your
config,
the
terminal
file.
There
is
no
need
to
restart
runner
after
you
make
this
change
to
your
config
that
thermal
file
get
that
run,
will
automatically
pick
up.
This
configuration
changed,
so
that's
it.
So
with
that
step,
I
am
now
ready
to
test
a
pipeline
job.
A
So
let
me
just
pop
over
to
our
project,
and
I
can
show
you
how
this
is
all
set
up
so
over
here
in
my
project,
this
project
is
called
runner
plug,
manage
integration
test.
I've
already
pre
registered
this
runner.
That's
over
here
it's
running
on
this
machine
and
you
can
see
it's
called
darren
dash
apartment
test.
I've
had
some
I've
added,
some
tanks
to
a
docker
apartment,
and
so
on.
You
can
see
the
platform
is
running
on
right,
so
this
runner
has
already
registered
this
project.
A
It's
ready
to
pick
up
jobs
over
here
on
in
on
the
actual
runner
environment
itself.
I
change
the
config.tamo
file
to
use
podman
as
the
the
container
runtime,
and
so
what
we're
going
to
do
is
we're
going
to
run
a
quick
job
to
make
sure
this
all
works.
A
So
I've
got
a
couple
example
branches,
a
couple
of
example:
jobs
in
this
repository,
let's
just
pop
over
and
take
a
look
at
the
first
one,
and
it's
going
to
be
what
I
call
podband
container
build
and
for
this
example,
I'm
going
to
build
a
container
using
pod
man
as
the
container
runtime
engine
for
building
that
container.
So
I
have
a
very
simple
project
repository
here.
It's
got
a
very
simple,
very
basic
maintenance
go
file,
and
then
it
has
a
very
simple
docker
file.
I'm
just
going
to
pop
into
that.
A
So
you
can
take
a
quick
look
and
it's
very
simple
docker
file,
so
the
size
of
the
docker
file.
We
have
to
build
the
screens
for
I'm
building
it
from
scratch
and
just
adding
in
the
executable,
that's
built
for
my
main.go
file,
really
really
basic,
so
that
we
can
get
something
going
very
quickly,
and
the
point
here
is
that
I
just
want
to
show
you
in
the
demo
that
we
can
now
use
podman
to
build
a
container
image
right,
which
is
kind
of
one
of
the
main.
A
So
there's
a
couple
of
different
use
cases
that
we
get
from
having
github
runner
and
the
docker
executor.
You
know,
one
use
case
is
simply
being
able
to
run
your
ci
jobs
within
the
container
image
of
choice.
The
other
main
use
case
is
obviously
building
and
publishing
your
own
container
images,
and
this
is
this.
In
this
example,
I
am
showing
how
to
build
and
publish
container
images.
So
I've
got
my
docker
file
here
and
let's
go
now
pop
into
our
get
that
bmw
file.
So
you
can
take
a
quick
look
at
what
it
looks
like.
A
So
this
is
a
very
simple
get
5
mm
file.
In
my
variable
section,
I
just
got
an
image
time
variable
and
just
basically,
you
know
simplifying
my
tagging
mechanism.
For
my
for
my
container
image
and
the
before
script
section,
you
can
you'll
note
here
that
I'm
gonna
I'm
using
podman
to
log
into
our
to
my
gitlab
container
registry.
So
the
command
is
simply
podman
login
and
then
I'm
passing
in
the
credentials
for
the
gitlab
container
registry.
A
I've
created
the
job
called
oci
container,
build
that's
in
the
build
stage
and
the
commands
for
building
and
publishing
my
container
image
are
pretty
straightforward.
It's
podman
build
and
then
tagging
the
image
with
the
image
tag,
variable
and
then
podband
push
and
basically
pushing
it.
So
with
those
very
that
very
simple,
two
script:
two
lines
of
script
there
I'll
be
able
to
build
this
container
image
and
then
push
it
to
the
gitlab
container
registry,
and
this
is
all
going
to
be
executed
on
this
runner.
A
It's
over
here
in
this
virtual
machine
that
has
now
been
configured
to
use
podband
instead
of
docker,
never
even
installed.virtual
machine
to
use
podband
as
the
container
runtime.
So
let's
just
go
ahead
and
run
that
pipeline
example.
So
you
can
have
a
look
at
that
and
I
might
just
pause
the
video
while
it
kicks
off,
because
I
have
the
pipeline
set
up
to
run
manually,
I'm
going
to
run
this
pipeline
for
the
container
build
first,
I'm
gonna
pause
for
a
second
be
right.
A
Close
that
off,
you
need
to
see
my
slack
one
to
do
okay,
so
this
is
the
example.
So
it's
basically
running
it's
gonna
walk
through
what
this
love
that
is
telling
us
it's
just
running
with
the
gitlab
on
the
version.
That's
pretty
straightforward!
A
It's
running
on
a
runner
that
I
call
darren
podman
test
runner
and
the
important
thing
to
note
here
is
line
four.
It
says
preparing
the
doctor
executor
so
again,
the
purpose
of
this
demo
is
showing
that
we're
still
using
the
docker
executor
in
get
lab
runner.
So
that's
why
it's
still
saying
preparing
a
doctor,
executive
and
what's
happening
behind
the
scenes,
as
we
talked
about,
is
that
we're
actually
now
using
podman
as
the
container
runtime
right
now,
because
in
my
config.tunnel
file,
maybe
I'll
just
show
it
to
you
one
more
time.
A
A
Then
you
can
see
here
at
line
20
the
pod
man
logging
command.
This
is
where
now
podman
is
being
used
to
log
in
to
the
container.
Oh
to
them,
and
get
that
container
registry
login
successful,
then
I'm
doing
a
line
22
department
build.
This
is
is
happening.
It's
doing
the
build
it's
going
pretty
fast,
because
it's
a
very
small
container
image
files,
we're
building
because
again
we're
building
from
scratch
and
just
adding
in
the
executable,
that's
created
from
my
main.go
file
and
then
finally
we're
pushing
that
container
image
out
to
the
registry.
A
So
that's
a
that's
how
that's
really
simple
example.
So
in
this
case,
for
those
trying
to
to
figure
out
different
mechanisms
to
build
the
container
image
option,
one
you
can
just
use
spot
man.
This
is
well
documented
on
the
apartment
that
I
o
documentation
pages.
So
you
can
use
podman
itself
to
build
and
publish
your
container
images.
There's
also
the
option
for
you
to
use
builder
as
well
and
builder
is
part
of
the
sort
of
the
pubmed
ecosystem.
A
So
it's
there
at
building
io,
there's
tons
of
tutorials
here
on
building
io,
there's
tons
of
blog
posts
that
have
been
written
by
the
red
hat
folks
in
terms
of
doing
different
things
with
builder,
along
with
podman,
I'm
not
going
to
get
into
that,
but
you've
got
both
options
and
I'll
show
you
the
option
here
now
in
terms
of
using
pod,
build
sorry
and
what
it
looks
like.
So
that
was
the
podman
option
and
let's
go
ahead
and
keep
this
screen
open
and
I'm
gonna
actually
just
open
another
browser
window.
A
A
So,
what's
different
here
is
that
I'm
now
I've
now
defined
in
my
gitlab
ml
file
that
I
want
to
use
builder,
and
so
that's
why
I
have
an
image
line
here.
I'm
going
to
be
pulling
in
a
container
image,
specifically
I'm
going
to
be
pulling
in
the
builder
container
image
from
created,
io
repository
and
I'm
going
to
use
that
container
image
to
build
and
push
my
docker
file
more
specifically
build
or
push
my
container
that
is
defined
in
a
docker
file.
A
And
yes,
there
are
also-
and
then
in
this
demo,
I'm
not
covering
the
fact
that,
with
builder,
for
example,
you
don't
need
a
docker
file.
Maybe
a
subsequent
video.
I
will
spin
something
up
along
those
lines
to
show
that
flexibility
as
well,
but
there
are
some
tutorials
on
blog
posts,
as
I
mentioned
before,
if
I
recall
correctly
linked
from
the
builder
page,
that
shows
you
how
to
use
builder
with
sort
of
like
a
batch
script
and
so
forth.
A
You
can
get
really
intricate
in
what
you
might
be
able
to
then
do
in
terms
of
building
your
container
images
with
builder,
but
in
this
example,
build
is
just
going
to
be
using
the
docker
file.
That's
in
at
the
root
of
this
repository
and
the
only
thing
here,
it's
everything
is
the
same,
except
for
we
replace
podman
with
builder,
so
builder
is
doing.
The
the
login
to
my
container
registry
builder
is
doing
the
build
of
the
container
image
and
the
build
command
for
builder's
bud
built
above
and
then
it's
doing
the
push.
A
So
this
is
the
main
change
we're
using
builder
here
and
then
to
make
this
work.
I
have
defined
in
this
yaml
file
that
I
want
to
use.
I
want
to
run
those
build,
build
commands
in
this
builder
container
image.
So
let's
just
just
run
it.
You
know
we
know
it's
going
to
work,
but
just
so
you
can
see
it
here,
live
we're
going
to
go
ahead
and
run
that
pipeline
as
well.
I'm
going
to
run
this
one,
and
this
is
going
to
be
the
builder
container,
build
branch.
A
A
So
I
want
you
to
see
this
example.
So
this
on
the
right
hand,
side
of
the
screen
is
the
builder
example
and
the
left
hand.
Side
of
the
screen
was
the
example
of
me
using
partner
again
so
they're.
Both
of
these
pipeline
jobs
are
running
on
the
same,
get
that
runner
down
in
part
man,
testrunner
blah
blah
blah
blah
six
dash
ef9
hy
line.
Four
both
will
look
the
same
preparing
docker
executor,.
A
A
It
prepares
my
environment
here
and
then
we
get
down
to
the
actual
line
19
where
things
are
different,
and
actually
this
is
on
line
20
here.
So
here's
the
pubmed
login,
that's
when
we
use
podband
in
this
case
we
just
use
builder,
then
it
did
the
build
of
the
image,
then
builder
push
the
image
and
it
says,
write
a
manifest.
Everything
is
pretty
much
the
same.
So
the
main
differences
here
very
clearly
podman
in
one
example
builder
in
the
next
example
so
get
labrunner
podman
installed
on
linux
vm.
A
We
configured
gitlab
runner
to
use
a
docker
executor,
but
then
we
changed
the
host
string
and
pointed
the
host
string
to
pod
man.
So
that
part
man
is
a
is
replacing
docker
and
I've.
Never
I
didn't
want
it
to
be
100
clear.
I
never
installed
docker
on
that
vm
that
via
only
had
podman
and
get
labrunner
and
then
just
to
wrap
things
up.
Let's
take
a
quick
look
at
the
container
registry
here,
so
you
go
to
packages
and
registry
container
registry
and
we
can
see
yep
published
two
minutes
ago.
A
So
the
builder
container,
the
tagged
version
from
the
builder
container
build
branch
is
here
the
tagged
image
version
from
the
podman
container.
Build
branch
is
here
so
just
to
wrap
things
up.
Then
I'm
gonna
pop
over
to
our
runner
docs
page,
and
I
want
to
show
you
that
we
so
everything
I
just
covered
is
now
available
in
on
the
runner
docs
page,
and
let
me
just
do
a
search
for
executors.
A
And
you
go
to
here
and
so
doctor
gitlab.com,
slash
runner,
executives,
doctors
and,
on
the
right
hand,
side
you'll,
see
on
you
can
do
a
search
as
well
using
podman
to
run
docker
commands.
So
this
is
now
in
beta.
We
have
a
couple
of
issues
to
work
out
before
we
can
officially
release
the
j
version
of
this,
which
we
expect
to
happen
the
next
two
months.
This
is
this
demo,
video,
I'm
creating
at
the
end
of
gitlab
15.1.
A
So
within
the
next
two
release
milestone,
we
hope
to
have
a
ga
version
of
this
release,
we're
working
through
a
couple
of
issues
and
we're
pretty
close
with
the
red
hat
team
on
getting
a
couple
of
issues
resolved
to
the
point
where
we
are
very
super
comfortable,
saying
that
this
is
a
ga
product,
but
so
far
in
my
testing,
things
are
looking
pretty
stubble
pretty
stable.
A
So
that's
why
you
will
comfortably
releasing
this
as
beta
as
you
can
see
you
can
do
you
can
build
a
container
image
with
part
density
drop
and
replacement
for
docker
and
pod
man,
and
I
know
some
this
time
becoming
a
bit
overloaded,
exactly
as
I
keep
saying
it,
I'm
hearing
it
myself,
but
yes,
you
can
department
is
a
dropping
pacing
for
docker.
That's
a
container
runtime
kind
of
the
view.
A
Then
you
can
use
podman
itself
for
building
your
container
images
or,
as
I
as
I
just
demonstrated,
you
can
use
builder
for
building
your
container
images
and
then,
of
course,
you
can
also
just
run
regular
pipeline
jobs.
Very
wake
up.
You
can
run
non-image
building
pipeline
jobs
as
well
right,
so
you
run
into
a
js
job.
You
pull
down
your
node.js
image
and
you
execute
your
scripts.
You
all
of
that
functionality
is
there
for
you,
so
that's
it
so
just
to
wrap
up.
A
This
was
a
demo
of
podman
as
a
drop
in
replacement
for
docker,
depending
on
the
feedback
we
get
on
the
demo
on
the
videos
and
so
on,
we'll
determine
kind
of
what's
next
in
a
series
of
videos
as
we
head
as
we
head
down
this
path.
So
thanks
for
for
watching.
Hopefully,
this
was
helpful
for
you
and
see
you
next
time
cheers.