ansible / ansible-container

DEPRECATED -- Ansible Container was a tool to build Docker images and orchestrate containers using only Ansible playbooks.
GNU Lesser General Public License v3.0
2.19k stars 392 forks source link

Ubuntu Bionic/Artful not in PREBAKED_DISTROS #960

Open cluosh opened 6 years ago

cluosh commented 6 years ago
ISSUE TYPE
container.yml
version: "2"
settings:
  conductor:
    base: ubuntu:bionic
  project_name: web

services:
  web:
    from: ubuntu:bionic
    roles:
      - flask
    ports:
      - "5000:5000"
    working_dir: /app
    environment:
      - "FLASK_APP=/app/app.py"
    command: ["flask", "run", "--host=0.0.0.0"]
OS / ENVIRONMENT
{
  "ID": "DJFK:FRYW:6MDK:AZP7:6I2W:C75V:FJNR:2JE4:KYCI:4NTN:CWCN:JK7G",
  "Containers": 3,
  "ContainersRunning": 1,
  "ContainersPaused": 0,
  "ContainersStopped": 2,
  "Images": 48,
  "Driver": "overlay2",
  "DriverStatus": [
    [
      "Backing Filesystem",
      "extfs"
    ],
    [
      "Supports d_type",
      "true"
    ],
    [
      "Native Overlay Diff",
      "false"
    ]
  ],
  "SystemStatus": null,
  "Plugins": {
    "Volume": [
      "local"
    ],
    "Network": [
      "bridge",
      "host",
      "macvlan",
      "null",
      "overlay"
    ],
    "Authorization": null,
    "Log": [
      "awslogs",
      "fluentd",
      "gcplogs",
      "gelf",
      "journald",
      "json-file",
      "logentries",
      "splunk",
      "syslog"
    ]
  },
  "MemoryLimit": true,
  "SwapLimit": true,
  "KernelMemory": true,
  "CpuCfsPeriod": true,
  "CpuCfsQuota": true,
  "CPUShares": true,
  "CPUSet": true,
  "IPv4Forwarding": true,
  "BridgeNfIptables": true,
  "BridgeNfIp6tables": true,
  "Debug": false,
  "NFd": 26,
  "OomKillDisable": true,
  "NGoroutines": 38,
  "SystemTime": "2018-08-13T21:45:16.816269104+02:00",
  "LoggingDriver": "json-file",
  "CgroupDriver": "cgroupfs",
  "NEventsListener": 0,
  "KernelVersion": "4.17.14-arch1-1-ARCH",
  "OperatingSystem": "Arch Linux",
  "OSType": "linux",
  "Architecture": "x86_64",
  "IndexServerAddress": "https://index.docker.io/v1/",
  "RegistryConfig": {
    "AllowNondistributableArtifactsCIDRs": [],
    "AllowNondistributableArtifactsHostnames": [],
    "InsecureRegistryCIDRs": [
      "127.0.0.0/8"
    ],
    "IndexConfigs": {
      "docker.io": {
        "Name": "docker.io",
        "Mirrors": [],
        "Secure": true,
        "Official": true
      }
    },
    "Mirrors": []
  },
  "NCPU": 4,
  "MemTotal": 8257572864,
  "GenericResources": null,
  "DockerRootDir": "/home/cluosh/tuwien/conmw/docker-storage",
  "HttpProxy": "",
  "HttpsProxy": "",
  "NoProxy": "",
  "Name": "hopper",
  "Labels": [],
  "ExperimentalBuild": false,
  "ServerVersion": "18.05.0-ce",
  "ClusterStore": "",
  "ClusterAdvertise": "",
  "Runtimes": {
    "runc": {
      "path": "docker-runc"
    }
  },
  "DefaultRuntime": "runc",
  "Swarm": {
    "NodeID": "",
    "NodeAddr": "",
    "LocalNodeState": "inactive",
    "ControlAvailable": false,
    "Error": "",
    "RemoteManagers": null
  },
  "LiveRestoreEnabled": false,
  "Isolation": "",
  "InitBinary": "docker-init",
  "ContainerdCommit": {
    "ID": "773c489c9c1b21a6d78b5c538cd395416ec50f88",
    "Expected": "773c489c9c1b21a6d78b5c538cd395416ec50f88"
  },
  "RuncCommit": {
    "ID": "4fc53a81fb7c994640722ac585fa9ca548971871",
    "Expected": "4fc53a81fb7c994640722ac585fa9ca548971871"
  },
  "InitCommit": {
    "ID": "949e6fa",
    "Expected": "949e6fa"
  },
  "SecurityOptions": [
    "name=seccomp,profile=default"
  ]
}
{
  "Platform": {
    "Name": ""
  },
  "Components": [
    {
      "Name": "Engine",
      "Version": "18.05.0-ce",
      "Details": {
        "ApiVersion": "1.37",
        "Arch": "amd64",
        "BuildTime": "2018-05-16T22:28:17.000000000+00:00",
        "Experimental": "false",
        "GitCommit": "f150324782",
        "GoVersion": "go1.10.2",
        "KernelVersion": "4.17.14-arch1-1-ARCH",
        "MinAPIVersion": "1.12",
        "Os": "linux"
      }
    }
  ],
  "Version": "18.05.0-ce",
  "ApiVersion": "1.37",
  "MinAPIVersion": "1.12",
  "GitCommit": "f150324782",
  "GoVersion": "go1.10.2",
  "Os": "linux",
  "Arch": "amd64",
  "KernelVersion": "4.17.14-arch1-1-ARCH",
  "BuildTime": "2018-05-16T22:28:17.000000000+00:00"
}
SUMMARY

Ubuntu Bionic cannot be used as conductor base despite there being an image on dockerhub. It is not listed in PREBAKED_DISTROS in container/docker/engine.py:

PREBAKED_DISTROS = {
    'centos:7': ['centos:latest', 'centos:centos7'],
    'fedora:27': ['fedora:latest'],
    'fedora:26': [],
    'fedora:25': [],
    'amazonlinux:2': ['amazonlinux:2'],
    'debian:jessie': ['debian:8', 'debian:latest', 'debian:jessie-slim'],
    'debian:stretch': ['debian:9', 'debian:stretch-slim'],
    'debian:wheezy': ['debian:7', 'debian:wheezy-slim'],
    'ubuntu:precise': ['ubuntu:12.04'],
    'ubuntu:trusty': ['ubuntu:14.04'],
    'ubuntu:xenial': ['ubuntu:16.04'],
    'ubuntu:zesty': ['ubuntu:17.04'],
    'alpine:3.5': ['alpine:latest'],
    'alpine:3.4': []
}

In _prepare_conductor_manifest the ansible/ is only prepended, if the the tag is found in PREBAKED_DISTROS, making it impossible to pull the official prebaked Ubuntu Bionic image.

STEPS TO REPRODUCE
ansible-container --debug build
EXPECTED RESULTS

Since the image is on dockerhub, I expected it to build.

ACTUAL RESULTS
2018-08-13T21:48:50.582616 The default type is            [container.config] caller_file=/home/cluosh/tools/ansible-container/container/config.py caller_func=_resolve_defaults caller_line=255 config=<class 'ruamel.yaml.comments.CommentedMap'> defaults=<class 'ruamel.yaml.compat.ordereddict'>
2018-08-13T21:48:50.583860 Getting environment variables... [container.config] caller_file=/home/cluosh/tools/ansible-container/container/config.py caller_func=_get_environment_variables caller_line=271
2018-08-13T21:48:50.585080 Read environment variables     [container.config] caller_file=/home/cluosh/tools/ansible-container/container/config.py caller_func=_get_environment_variables caller_line=276 env_vars={}
2018-08-13T21:48:50.585813 Resolved template variables    [container.config] caller_file=/home/cluosh/tools/ansible-container/container/config.py caller_func=_resolve_defaults caller_line=260 template_vars={}
2018-08-13T21:48:50.586646 Parsed config                  [container.config] caller_file=/home/cluosh/tools/ansible-container/container/config.py caller_func=set_env caller_line=196 config={"version": "2", "settings": {"conductor": {"base": "ubuntu:bionic"}, "project_name": "secenv", "pwd": "/home/cluosh/tuwien/secenv-infrastructure/web_docker"}, "services": {"web": {"from": "ubuntu:bionic", "roles": ["flask"], "ports": ["5000:5000"], "working_dir": "/app", "environment": ["FLASK_APP=/app/app.py"], "command": ["flask", "run", "--host=0.0.0.0"]}}, "defaults": {}}
2018-08-13T21:48:50.587634 Loading engine capabilities    [container.utils.loader] caller_file=/home/cluosh/tools/ansible-container/container/utils/loader.py caller_func=load_engine caller_line=14 capabilities=['BUILD', 'RUN'] engine=docker
2018-08-13T21:48:50.631553 Setting Docker client timeout to 60 [container.docker.engine] caller_file=/home/cluosh/tools/ansible-container/container/docker/engine.py caller_func=get_timeout caller_line=124
2018-08-13T21:48:50.646913 Could not find container for secenv_conductor [container.docker.engine] all_containers=['secenv_web-43fc3093-flask', 'secenv_web-1dc7da32-flask', 'secenv_web_1'] caller_file=/home/cluosh/tools/ansible-container/container/docker/engine.py caller_func=get_container_id_by_name caller_line=570
2018-08-13T21:48:50.671974 Call: Engine.build_conductor_image [container.docker.engine] args=('/home/cluosh/tuwien/secenv-infrastructure/web_docker', 'ubuntu:bionic') caller_file=/home/cluosh/tools/ansible-container/container/docker/engine.py caller_func=Engine.build_conductor_image caller_line=1043 kwargs={'cache': True, 'environment': []}
2018-08-13T21:48:50.673184 Using temporary directory      [container.utils.temp] caller_file=/home/cluosh/tools/ansible-container/container/utils/temp.py caller_func=__enter__ caller_line=17 path=/tmp/tmp5k0rcq60
2018-08-13T21:48:50.673860 Building Docker Engine context... [container.docker.engine] caller_file=/home/cluosh/tools/ansible-container/container/docker/engine.py caller_func=build_conductor_image caller_line=1049
2018-08-13T21:48:50.711076 Rendered Jinja Template:       [container.utils] body=b'FROM ubuntu:bionic\nENV ANSIBLE_CONTAINER=1\n\n\n\n\nRUN apt-get update -y && \\\n    apt-get install -y make dpkg-dev curl gcc git libffi-dev libpopt0 libssl-dev python2.7 python-apt python-dev rsync sudo && \\\n    cd /usr/bin && \\\n    rm -f lsb_release && \\\n    ln -fs python2.7 python && \\\n    \n    apt-get clean\n\n\nRUN (curl https://bootstrap.pypa.io/get-pip.py | python - --no-cache-dir ) && \\\n    mkdir -p /etc/ansible/roles /_ansible/src && \\\n    mkdir -p /licenses && \\\n    \n    (curl https://get.docker.com/builds/Linux/x86_64/docker-17.04.0-ce.tgz \\\n       | tar -zxC /usr/local/bin/ --strip-components=1 docker/docker )\n\nADD LICENSE /licenses/LICENSE\nADD help.1 /help.1\n\n# The COPY here will break cache if the version of Ansible Container changed\nCOPY /container-src /_ansible/container\n\nRUN cd /_ansible && \\\n    pip install --no-cache-dir -r container/conductor-build/conductor-requirements.txt && \\\n    PYTHONPATH=. LC_ALL="en_US.UTF-8" python container/conductor-build/setup.py develop -v -N && \\\n    ansible-galaxy install -p /etc/ansible/roles -r container/conductor-build/conductor-requirements.yml\n' caller_file=/home/cluosh/tools/ansible-container/container/utils/__init__.py caller_func=jinja_render_to_temp caller_line=104
2018-08-13T21:48:50.718578 Rendered Jinja Template:       [container.utils] body=b'FROM container-conductor-ubuntu-bionic:0.9.3rc0\n\n\n# The COPY here will break cache if the requirements or ansible.cfg has changed\nCOPY /build-src /_ansible/build\n\n\nRUN cp /_ansible/build/ansible.cfg /etc/ansible/ansible.cfg\n\n\nVOLUME /usr\n\nVOLUME /lib\n\n\n' caller_file=/home/cluosh/tools/ansible-container/container/utils/__init__.py caller_func=jinja_render_to_temp caller_line=104
2018-08-13T21:48:50.721225 Context manifest:              [container.docker.engine] caller_file=/home/cluosh/tools/ansible-container/container/docker/engine.py caller_func=build_conductor_image caller_line=1116
2018-08-13T21:48:50.721695 tarball item: build-src/ansible.cfg (144 bytes) [container.docker.engine] bytes=144 file=build-src/ansible.cfg
2018-08-13T21:48:50.722048 tarball item: build-src/ansible-requirements.txt (130 bytes) [container.docker.engine] bytes=130 file=build-src/ansible-requirements.txt
2018-08-13T21:48:50.722274 tarball item: build-src/requirements.yml (298 bytes) [container.docker.engine] bytes=298 file=build-src/requirements.yml
2018-08-13T21:48:50.722393 tarball item: build-src/.touch (0 bytes) [container.docker.engine] bytes=0 file=build-src/.touch
2018-08-13T21:48:50.722478 tarball item: contrib/get-pip.py (1595409 bytes) [container.docker.engine] bytes=1595409 file=contrib/get-pip.py
2018-08-13T21:48:50.722560 tarball item: container-src (0 bytes) [container.docker.engine] bytes=0 file=container-src
2018-08-13T21:48:50.722643 tarball item: container-src/__init__.py (950 bytes) [container.docker.engine] bytes=950 file=container-src/__init__.py
2018-08-13T21:48:50.722723 tarball item: container-src/__pycache__ (0 bytes) [container.docker.engine] bytes=0 file=container-src/__pycache__
2018-08-13T21:48:50.722803 tarball item: container-src/__pycache__/__init__.cpython-37.pyc (1087 bytes) [container.docker.engine] bytes=1087 file=container-src/__pycache__/__init__.cpython-37.pyc
2018-08-13T21:48:50.722895 tarball item: container-src/__pycache__/cli.cpython-37.pyc (16435 bytes) [container.docker.engine] bytes=16435 file=container-src/__pycache__/cli.cpython-37.pyc
2018-08-13T21:48:50.722977 tarball item: container-src/__pycache__/config.cpython-37.pyc (15479 bytes) [container.docker.engine] bytes=15479 file=container-src/__pycache__/config.cpython-37.pyc
2018-08-13T21:48:50.723057 tarball item: container-src/__pycache__/core.cpython-37.pyc (26953 bytes) [container.docker.engine] bytes=26953 file=container-src/__pycache__/core.cpython-37.pyc
2018-08-13T21:48:50.723150 tarball item: container-src/__pycache__/engine.cpython-37.pyc (9867 bytes) [container.docker.engine] bytes=9867 file=container-src/__pycache__/engine.cpython-37.pyc
2018-08-13T21:48:50.723230 tarball item: container-src/__pycache__/exceptions.cpython-37.pyc (4641 bytes) [container.docker.engine] bytes=4641 file=container-src/__pycache__/exceptions.cpython-37.pyc
2018-08-13T21:48:50.723309 tarball item: container-src/cli.py (24218 bytes) [container.docker.engine] bytes=24218 file=container-src/cli.py
2018-08-13T21:48:50.723387 tarball item: container-src/config.py (18968 bytes) [container.docker.engine] bytes=18968 file=container-src/config.py
2018-08-13T21:48:50.723465 tarball item: container-src/core.py (47917 bytes) [container.docker.engine] bytes=47917 file=container-src/core.py
2018-08-13T21:48:50.723543 tarball item: container-src/docker (0 bytes) [container.docker.engine] bytes=0 file=container-src/docker
2018-08-13T21:48:50.723621 tarball item: container-src/docker/__init__.py (205 bytes) [container.docker.engine] bytes=205 file=container-src/docker/__init__.py
2018-08-13T21:48:50.723701 tarball item: container-src/docker/__pycache__ (0 bytes) [container.docker.engine] bytes=0 file=container-src/docker/__pycache__
2018-08-13T21:48:50.723779 tarball item: container-src/docker/__pycache__/__init__.cpython-37.pyc (292 bytes) [container.docker.engine] bytes=292 file=container-src/docker/__pycache__/__init__.cpython-37.pyc
2018-08-13T21:48:50.723858 tarball item: container-src/docker/__pycache__/config.cpython-37.pyc (1949 bytes) [container.docker.engine] bytes=1949 file=container-src/docker/__pycache__/config.cpython-37.pyc
2018-08-13T21:48:50.723937 tarball item: container-src/docker/__pycache__/engine.cpython-37.pyc (35082 bytes) [container.docker.engine] bytes=35082 file=container-src/docker/__pycache__/engine.cpython-37.pyc
2018-08-13T21:48:50.724020 tarball item: container-src/docker/__pycache__/secrets.cpython-37.pyc (4324 bytes) [container.docker.engine] bytes=4324 file=container-src/docker/__pycache__/secrets.cpython-37.pyc
2018-08-13T21:48:50.724097 tarball item: container-src/docker/config.py (2384 bytes) [container.docker.engine] bytes=2384 file=container-src/docker/config.py
2018-08-13T21:48:50.724176 tarball item: container-src/docker/deploy.py (248 bytes) [container.docker.engine] bytes=248 file=container-src/docker/deploy.py
2018-08-13T21:48:50.724254 tarball item: container-src/docker/engine.py (53581 bytes) [container.docker.engine] bytes=53581 file=container-src/docker/engine.py
2018-08-13T21:48:50.724332 tarball item: container-src/docker/files (0 bytes) [container.docker.engine] bytes=0 file=container-src/docker/files
2018-08-13T21:48:50.724410 tarball item: container-src/docker/files/get-pip.py (1595409 bytes) [container.docker.engine] bytes=1595409 file=container-src/docker/files/get-pip.py
2018-08-13T21:48:50.724495 tarball item: container-src/docker/importer.py (24885 bytes) [container.docker.engine] bytes=24885 file=container-src/docker/importer.py
2018-08-13T21:48:50.724575 tarball item: container-src/docker/secrets.py (5255 bytes) [container.docker.engine] bytes=5255 file=container-src/docker/secrets.py
2018-08-13T21:48:50.724653 tarball item: container-src/docker/templates (0 bytes) [container.docker.engine] bytes=0 file=container-src/docker/templates
2018-08-13T21:48:50.724731 tarball item: container-src/docker/templates/atomic-help.j2 (1333 bytes) [container.docker.engine] bytes=1333 file=container-src/docker/templates/atomic-help.j2
2018-08-13T21:48:50.724809 tarball item: container-src/docker/templates/conductor-local-dockerfile.j2 (489 bytes) [container.docker.engine] bytes=489 file=container-src/docker/templates/conductor-local-dockerfile.j2
2018-08-13T21:48:50.724888 tarball item: container-src/docker/templates/conductor-src-dockerfile.j2 (3166 bytes) [container.docker.engine] bytes=3166 file=container-src/docker/templates/conductor-src-dockerfile.j2
2018-08-13T21:48:50.724966 tarball item: container-src/docker/templates/license.j2 (7837 bytes) [container.docker.engine] bytes=7837 file=container-src/docker/templates/license.j2
2018-08-13T21:48:50.725044 tarball item: container-src/docker/tests (0 bytes) [container.docker.engine] bytes=0 file=container-src/docker/tests
2018-08-13T21:48:50.725122 tarball item: container-src/docker/tests/import (0 bytes) [container.docker.engine] bytes=0 file=container-src/docker/tests/import
2018-08-13T21:48:50.725199 tarball item: container-src/docker/tests/import/Dockerfile (1151 bytes) [container.docker.engine] bytes=1151 file=container-src/docker/tests/import/Dockerfile
2018-08-13T21:48:50.725282 tarball item: container-src/docker/tests/import/blue-fish.txt (10 bytes) [container.docker.engine] bytes=10 file=container-src/docker/tests/import/blue-fish.txt
2018-08-13T21:48:50.725357 tarball item: container-src/docker/tests/import/lulz.tgz (59072 bytes) [container.docker.engine] bytes=59072 file=container-src/docker/tests/import/lulz.tgz
2018-08-13T21:48:50.725435 tarball item: container-src/docker/tests/import/one-fish.txt (6 bytes) [container.docker.engine] bytes=6 file=container-src/docker/tests/import/one-fish.txt
2018-08-13T21:48:50.725516 tarball item: container-src/docker/tests/import/red-fish (0 bytes) [container.docker.engine] bytes=0 file=container-src/docker/tests/import/red-fish
2018-08-13T21:48:50.725599 tarball item: container-src/docker/tests/import/red-fish/lulz.txt (10 bytes) [container.docker.engine] bytes=10 file=container-src/docker/tests/import/red-fish/lulz.txt
2018-08-13T21:48:50.725673 tarball item: container-src/docker/tests/import/two-fish (0 bytes) [container.docker.engine] bytes=0 file=container-src/docker/tests/import/two-fish
2018-08-13T21:48:50.725742 tarball item: container-src/docker/tests/import/two-fish/green-eggs (0 bytes) [container.docker.engine] bytes=0 file=container-src/docker/tests/import/two-fish/green-eggs
2018-08-13T21:48:50.725810 tarball item: container-src/docker/tests/import/two-fish/green-eggs/ham.txt (5 bytes) [container.docker.engine] bytes=5 file=container-src/docker/tests/import/two-fish/green-eggs/ham.txt
2018-08-13T21:48:50.725879 tarball item: container-src/docker/tests/import/two-fish/who.txt (7 bytes) [container.docker.engine] bytes=7 file=container-src/docker/tests/import/two-fish/who.txt
2018-08-13T21:48:50.725946 tarball item: container-src/engine.py (7421 bytes) [container.docker.engine] bytes=7421 file=container-src/engine.py
2018-08-13T21:48:50.726016 tarball item: container-src/exceptions.py (2319 bytes) [container.docker.engine] bytes=2319 file=container-src/exceptions.py
2018-08-13T21:48:50.726083 tarball item: container-src/k8s (0 bytes) [container.docker.engine] bytes=0 file=container-src/k8s
2018-08-13T21:48:50.726150 tarball item: container-src/k8s/__init__.py (196 bytes) [container.docker.engine] bytes=196 file=container-src/k8s/__init__.py
2018-08-13T21:48:50.726217 tarball item: container-src/k8s/base_config.py (932 bytes) [container.docker.engine] bytes=932 file=container-src/k8s/base_config.py
2018-08-13T21:48:50.726283 tarball item: container-src/k8s/base_deploy.py (34402 bytes) [container.docker.engine] bytes=34402 file=container-src/k8s/base_deploy.py
2018-08-13T21:48:50.726350 tarball item: container-src/k8s/base_engine.py (10144 bytes) [container.docker.engine] bytes=10144 file=container-src/k8s/base_engine.py
2018-08-13T21:48:50.726458 tarball item: container-src/k8s/config.py (660 bytes) [container.docker.engine] bytes=660 file=container-src/k8s/config.py
2018-08-13T21:48:50.726532 tarball item: container-src/k8s/deploy.py (1903 bytes) [container.docker.engine] bytes=1903 file=container-src/k8s/deploy.py
2018-08-13T21:48:50.726596 tarball item: container-src/k8s/engine.py (1276 bytes) [container.docker.engine] bytes=1276 file=container-src/k8s/engine.py
2018-08-13T21:48:50.726659 tarball item: container-src/openshift (0 bytes) [container.docker.engine] bytes=0 file=container-src/openshift
2018-08-13T21:48:50.726722 tarball item: container-src/openshift/__init__.py (196 bytes) [container.docker.engine] bytes=196 file=container-src/openshift/__init__.py
2018-08-13T21:48:50.726786 tarball item: container-src/openshift/config.py (427 bytes) [container.docker.engine] bytes=427 file=container-src/openshift/config.py
2018-08-13T21:48:50.726849 tarball item: container-src/openshift/deploy.py (6302 bytes) [container.docker.engine] bytes=6302 file=container-src/openshift/deploy.py
2018-08-13T21:48:50.726912 tarball item: container-src/openshift/engine.py (2207 bytes) [container.docker.engine] bytes=2207 file=container-src/openshift/engine.py
2018-08-13T21:48:50.726975 tarball item: container-src/schema.yml (2547 bytes) [container.docker.engine] bytes=2547 file=container-src/schema.yml
2018-08-13T21:48:50.727037 tarball item: container-src/templates (0 bytes) [container.docker.engine] bytes=0 file=container-src/templates
2018-08-13T21:48:50.727099 tarball item: container-src/templates/ansible-container-inventory.py (1230 bytes) [container.docker.engine] bytes=1230 file=container-src/templates/ansible-container-inventory.py
2018-08-13T21:48:50.727163 tarball item: container-src/templates/ansible-dockerfile.j2 (1194 bytes) [container.docker.engine] bytes=1194 file=container-src/templates/ansible-dockerfile.j2
2018-08-13T21:48:50.727226 tarball item: container-src/templates/ansible.cfg (41 bytes) [container.docker.engine] bytes=41 file=container-src/templates/ansible.cfg
2018-08-13T21:48:50.727288 tarball item: container-src/templates/builder.sh (620 bytes) [container.docker.engine] bytes=620 file=container-src/templates/builder.sh
2018-08-13T21:48:50.727350 tarball item: container-src/templates/compose_versioned.j2.yml (237 bytes) [container.docker.engine] bytes=237 file=container-src/templates/compose_versioned.j2.yml
2018-08-13T21:48:50.727413 tarball item: container-src/templates/hosts.j2 (90 bytes) [container.docker.engine] bytes=90 file=container-src/templates/hosts.j2
2018-08-13T21:48:50.727475 tarball item: container-src/templates/init (0 bytes) [container.docker.engine] bytes=0 file=container-src/templates/init
2018-08-13T21:48:50.727537 tarball item: container-src/templates/init/.dockerignore.j2 (60 bytes) [container.docker.engine] bytes=60 file=container-src/templates/init/.dockerignore.j2
2018-08-13T21:48:50.727600 tarball item: container-src/templates/init/ansible-requirements.j2.txt (131 bytes) [container.docker.engine] bytes=131 file=container-src/templates/init/ansible-requirements.j2.txt
2018-08-13T21:48:50.727663 tarball item: container-src/templates/init/ansible.j2.cfg (145 bytes) [container.docker.engine] bytes=145 file=container-src/templates/init/ansible.j2.cfg
2018-08-13T21:48:50.727725 tarball item: container-src/templates/init/container.j2.yml (2514 bytes) [container.docker.engine] bytes=2514 file=container-src/templates/init/container.j2.yml
2018-08-13T21:48:50.727788 tarball item: container-src/templates/init/meta.j2.yml (1231 bytes) [container.docker.engine] bytes=1231 file=container-src/templates/init/meta.j2.yml
2018-08-13T21:48:50.727851 tarball item: container-src/templates/init/requirements.j2.yml (299 bytes) [container.docker.engine] bytes=299 file=container-src/templates/init/requirements.j2.yml
2018-08-13T21:48:50.727912 tarball item: container-src/templates/install-docker-compose.j2.yml (712 bytes) [container.docker.engine] bytes=712 file=container-src/templates/install-docker-compose.j2.yml
2018-08-13T21:48:50.727975 tarball item: container-src/templates/restart-docker-compose.j2.yml (75 bytes) [container.docker.engine] bytes=75 file=container-src/templates/restart-docker-compose.j2.yml
2018-08-13T21:48:50.728038 tarball item: container-src/templates/role (0 bytes) [container.docker.engine] bytes=0 file=container-src/templates/role
2018-08-13T21:48:50.728100 tarball item: container-src/templates/role/.travis.j2.yml (540 bytes) [container.docker.engine] bytes=540 file=container-src/templates/role/.travis.j2.yml
2018-08-13T21:48:50.728163 tarball item: container-src/templates/role/README.j2.md (1287 bytes) [container.docker.engine] bytes=1287 file=container-src/templates/role/README.j2.md
2018-08-13T21:48:50.728225 tarball item: container-src/templates/role/defaults (0 bytes) [container.docker.engine] bytes=0 file=container-src/templates/role/defaults
2018-08-13T21:48:50.728288 tarball item: container-src/templates/role/defaults/main.j2.yml (55 bytes) [container.docker.engine] bytes=55 file=container-src/templates/role/defaults/main.j2.yml
2018-08-13T21:48:50.728351 tarball item: container-src/templates/role/meta (0 bytes) [container.docker.engine] bytes=0 file=container-src/templates/role/meta
2018-08-13T21:48:50.728413 tarball item: container-src/templates/role/meta/main.j2.yml (3220 bytes) [container.docker.engine] bytes=3220 file=container-src/templates/role/meta/main.j2.yml
2018-08-13T21:48:50.728475 tarball item: container-src/templates/role/test (0 bytes) [container.docker.engine] bytes=0 file=container-src/templates/role/test
2018-08-13T21:48:50.728538 tarball item: container-src/templates/role/test/test.j2.yml (81 bytes) [container.docker.engine] bytes=81 file=container-src/templates/role/test/test.j2.yml
2018-08-13T21:48:50.728600 tarball item: container-src/templates/run-docker-compose.j2.yml (75 bytes) [container.docker.engine] bytes=75 file=container-src/templates/run-docker-compose.j2.yml
2018-08-13T21:48:50.728663 tarball item: container-src/templates/stop-docker-compose.j2.yml (75 bytes) [container.docker.engine] bytes=75 file=container-src/templates/stop-docker-compose.j2.yml
2018-08-13T21:48:50.728760 tarball item: container-src/templates/wait_on_host.py (2365 bytes) [container.docker.engine] bytes=2365 file=container-src/templates/wait_on_host.py
2018-08-13T21:48:50.728832 tarball item: container-src/utils (0 bytes) [container.docker.engine] bytes=0 file=container-src/utils
2018-08-13T21:48:50.728896 tarball item: container-src/utils/__init__.py (15734 bytes) [container.docker.engine] bytes=15734 file=container-src/utils/__init__.py
2018-08-13T21:48:50.728960 tarball item: container-src/utils/__pycache__ (0 bytes) [container.docker.engine] bytes=0 file=container-src/utils/__pycache__
2018-08-13T21:48:50.729023 tarball item: container-src/utils/__pycache__/__init__.cpython-37.pyc (12348 bytes) [container.docker.engine] bytes=12348 file=container-src/utils/__pycache__/__init__.cpython-37.pyc
2018-08-13T21:48:50.729086 tarball item: container-src/utils/__pycache__/_text.cpython-37.pyc (8254 bytes) [container.docker.engine] bytes=8254 file=container-src/utils/__pycache__/_text.cpython-37.pyc
2018-08-13T21:48:50.729149 tarball item: container-src/utils/__pycache__/loader.cpython-37.pyc (942 bytes) [container.docker.engine] bytes=942 file=container-src/utils/__pycache__/loader.cpython-37.pyc
2018-08-13T21:48:50.729212 tarball item: container-src/utils/__pycache__/logmux.cpython-37.pyc (1975 bytes) [container.docker.engine] bytes=1975 file=container-src/utils/__pycache__/logmux.cpython-37.pyc
2018-08-13T21:48:50.729275 tarball item: container-src/utils/__pycache__/ordereddict.cpython-37.pyc (756 bytes) [container.docker.engine] bytes=756 file=container-src/utils/__pycache__/ordereddict.cpython-37.pyc
2018-08-13T21:48:50.729337 tarball item: container-src/utils/__pycache__/temp.cpython-37.pyc (1085 bytes) [container.docker.engine] bytes=1085 file=container-src/utils/__pycache__/temp.cpython-37.pyc
2018-08-13T21:48:50.729401 tarball item: container-src/utils/__pycache__/visibility.cpython-37.pyc (3015 bytes) [container.docker.engine] bytes=3015 file=container-src/utils/__pycache__/visibility.cpython-37.pyc
2018-08-13T21:48:50.729463 tarball item: container-src/utils/_text.py (12304 bytes) [container.docker.engine] bytes=12304 file=container-src/utils/_text.py
2018-08-13T21:48:50.729525 tarball item: container-src/utils/galaxy.py (8139 bytes) [container.docker.engine] bytes=8139 file=container-src/utils/galaxy.py
2018-08-13T21:48:50.729588 tarball item: container-src/utils/loader.py (906 bytes) [container.docker.engine] bytes=906 file=container-src/utils/loader.py
2018-08-13T21:48:50.729651 tarball item: container-src/utils/logmux.py (1313 bytes) [container.docker.engine] bytes=1313 file=container-src/utils/logmux.py
2018-08-13T21:48:50.729713 tarball item: container-src/utils/ordereddict.py (678 bytes) [container.docker.engine] bytes=678 file=container-src/utils/ordereddict.py
2018-08-13T21:48:50.729790 tarball item: container-src/utils/temp.py (698 bytes) [container.docker.engine] bytes=698 file=container-src/utils/temp.py
2018-08-13T21:48:50.729855 tarball item: container-src/utils/visibility.py (3270 bytes) [container.docker.engine] bytes=3270 file=container-src/utils/visibility.py
2018-08-13T21:48:50.729919 tarball item: container-src/conductor-build/setup.py (4720 bytes) [container.docker.engine] bytes=4720 file=container-src/conductor-build/setup.py
2018-08-13T21:48:50.729981 tarball item: container-src/conductor-build/conductor-requirements.txt (242 bytes) [container.docker.engine] bytes=242 file=container-src/conductor-build/conductor-requirements.txt
2018-08-13T21:48:50.730045 tarball item: container-src/conductor-build/conductor-requirements.yml (60 bytes) [container.docker.engine] bytes=60 file=container-src/conductor-build/conductor-requirements.yml
2018-08-13T21:48:50.730107 tarball item: Dockerfile (1108 bytes) [container.docker.engine] bytes=1108 file=Dockerfile
2018-08-13T21:48:50.730170 tarball item: build-src/ansible.cfg (144 bytes) [container.docker.engine] bytes=144 file=build-src/ansible.cfg
2018-08-13T21:48:50.730233 tarball item: build-src/ansible-requirements.txt (130 bytes) [container.docker.engine] bytes=130 file=build-src/ansible-requirements.txt
2018-08-13T21:48:50.730296 tarball item: build-src/requirements.yml (298 bytes) [container.docker.engine] bytes=298 file=build-src/requirements.yml
2018-08-13T21:48:50.730358 tarball item: build-src/.touch (0 bytes) [container.docker.engine] bytes=0 file=build-src/.touch
2018-08-13T21:48:50.730420 tarball item: Dockerfile (253 bytes) [container.docker.engine] bytes=253 file=Dockerfile
2018-08-13T21:48:50.730977 Starting Docker build of Ansible Container Conductor image (please be patient)... [container.docker.engine] caller_file=/home/cluosh/tools/ansible-container/container/docker/engine.py caller_func=build_conductor_image caller_line=1124
Step 1/5 : FROM container-conductor-ubuntu-bionic:0.9.3rc0

2018-08-13T21:48:52.433972 Cleaning up temporary directory [container.utils.temp] caller_file=/home/cluosh/tools/ansible-container/container/utils/temp.py caller_func=__exit__ caller_line=22 path=/tmp/tmp5k0rcq60
2018-08-13T21:48:52.435875 Unknown exception Error building conductor image: pull access denied for container-conductor-ubuntu-bionic, repository does not exist or may require 'docker login' [container.cli] caller_file=/home/cluosh/tuwien/secenv-infrastructure/web_docker/venv/lib/python3.7/site-packages/structlog/stdlib.py caller_func=exception caller_line=95
Traceback (most recent call last):
  File "/home/cluosh/tools/ansible-container/container/cli.py", line 302, in __call__
    getattr(core, u'hostcmd_{}'.format(args.subcommand))(**vars(args))
  File "/home/cluosh/tools/ansible-container/container/__init__.py", line 28, in __wrapped__
    return fn(*args, **kwargs)
  File "/home/cluosh/tools/ansible-container/container/core.py", line 184, in hostcmd_build
    environment=env_vars
  File "/home/cluosh/tools/ansible-container/container/docker/engine.py", line 107, in __wrapped__
    return fn(self, *args, **kwargs)
  File "/home/cluosh/tools/ansible-container/container/__init__.py", line 28, in __wrapped__
    return fn(*args, **kwargs)
  File "/home/cluosh/tools/ansible-container/container/docker/engine.py", line 1140, in build_conductor_image
    "Error building conductor image: {0}".format(line['errorDetail']['message']))
container.exceptions.AnsibleContainerException: Error building conductor image: pull access denied for container-conductor-ubuntu-bionic, repository does not exist or may require 'docker login'
ITBlogger commented 6 years ago

Yep, this is definitely an issue and it's preventing us from deploying containers based on ubuntu bionic images, both phusion and ubuntu minimal

Voronenko commented 6 years ago

For develop - images are already published. In addition, as a temporary measure, recent develop is published as sa-ansible-container package. https://pypi.org/project/sa-ansible-container/

See https://github.com/ansible/ansible-container/issues/965 for context.

pete-fab commented 6 years ago

I'm not entirely certain how to use this workaround. Can actually ubuntu:18.04 be added to supported container bases? It can't be such a niche need, since this is the current ubuntu LTS.

Voronenko commented 6 years ago

How to get 18:04 to supported container bases? a) Contact someone from pypi maintainers https://pypi.org/project/ansible-container/ , @j00bar or @ryansb and ask them to complete official release for 0.9.3

b) use workaround, and build your own conductor images

Example of usage, in scope of PR https://github.com/ansible/ansible-container/pull/966

included into pip install sa-ansible-container