Add support for supplying alpine mirror url
In order to build images and use a local mirror, add an option which updates the built-in alpine mirror. It puts it back at the end because someone might otherwise use the output as a base image and it would point to a random location. Change-Id: I32cd19f79f1d474b0c011e39d139a78e196ce563
This commit is contained in:
parent
ea3d7cbf2a
commit
19463f937d
|
@ -108,6 +108,12 @@ def main():
|
||||||
"--prefix",
|
"--prefix",
|
||||||
help="Organization prefix container images will be published to"
|
help="Organization prefix container images will be published to"
|
||||||
)
|
)
|
||||||
|
cmd_images.add_argument(
|
||||||
|
"--mirror",
|
||||||
|
help=(
|
||||||
|
"Base url for an alpine mirror to use. Will be used to replace"
|
||||||
|
" http://dl-cdn.alpinelinux.org/alpine"),
|
||||||
|
)
|
||||||
|
|
||||||
args = parser.parse_args()
|
args = parser.parse_args()
|
||||||
setup_logging(args.log_config, args.debug)
|
setup_logging(args.log_config, args.debug)
|
||||||
|
|
|
@ -20,6 +20,7 @@ import tempfile
|
||||||
|
|
||||||
import sh
|
import sh
|
||||||
|
|
||||||
|
ALPINE_MIRROR_BASE = "http://dl-cdn.alpinelinux.org/alpine"
|
||||||
log = logging.getLogger("pbrx.container_images")
|
log = logging.getLogger("pbrx.container_images")
|
||||||
|
|
||||||
|
|
||||||
|
@ -119,6 +120,10 @@ def build(args):
|
||||||
log.info("Building base python container")
|
log.info("Building base python container")
|
||||||
# Create base python container which has distro packages updated
|
# Create base python container which has distro packages updated
|
||||||
with docker_container("python:alpine", tag="python-base") as cont:
|
with docker_container("python:alpine", tag="python-base") as cont:
|
||||||
|
if args.mirror:
|
||||||
|
cont.run("sed -i 's,{old},{new}' /etc/apk/repositories".format(
|
||||||
|
old=ALPINE_MIRROR_BASE,
|
||||||
|
new=args.mirror))
|
||||||
cont.run("apk update")
|
cont.run("apk update")
|
||||||
|
|
||||||
log.info("Building bindep container")
|
log.info("Building bindep container")
|
||||||
|
@ -216,6 +221,11 @@ def build(args):
|
||||||
"pip install"
|
"pip install"
|
||||||
" $(echo /root/.cache/pip/*.whl)[{base}]".format(
|
" $(echo /root/.cache/pip/*.whl)[{base}]".format(
|
||||||
base=info.base_container.replace('-', '_')))
|
base=info.base_container.replace('-', '_')))
|
||||||
|
if args.mirror:
|
||||||
|
cont.run(
|
||||||
|
"sed -i 's,{old},{new}' /etc/apk/repositories".format(
|
||||||
|
old=args.mirror,
|
||||||
|
new=ALPINE_MIRROR_BASE))
|
||||||
# chown wheel cache back so the temp dir can delete it
|
# chown wheel cache back so the temp dir can delete it
|
||||||
cont.run("chown -R {uid} /root/.cache/pip".format(
|
cont.run("chown -R {uid} /root/.cache/pip".format(
|
||||||
uid=os.getuid()))
|
uid=os.getuid()))
|
||||||
|
|
Loading…
Reference in New Issue