集群搭建
kubeasz + ks_install 2.1.0 + k8s v1.15.0
背景知识
测试项目 https://github.com/kubesphere/s2i-python-container/tree/master/examples/django-test-app
python==3.6
django==1.11.23
创建python s2i 服务


项目构建日志
I0219 12:14:26.167998 1 docker.go:506] Using locally available image "kubesphere/python-36-centos7:v2.1.0"
I0219 12:14:26.171667 1 docker.go:506] Using locally available image "kubesphere/python-36-centos7:v2.1.0"
I0219 12:14:26.176223 1 docker.go:506] Using locally available image "kubesphere/python-36-centos7:v2.1.0"
I0219 12:14:26.176238 1 docker.go:808] Image sha256:696369947b4ef710ba836bcc1b94019b6bcf1adba2a0c41447af82880fd59264 contains scripts-url set to "image:///usr/libexec/s2i"
I0219 12:14:26.176265 1 sti.go:205] Preparing to build <镜像仓库>/infra/open-api:v4.0
I0219 12:14:26.176664 1 clone.go:39] Cloning sources into "/tmp/s2i230304812/upload/tmp"
Cloning into '/tmp/s2i230304812/upload/tmp'...
remote: Enumerating objects: 122, done.
remote: Counting objects: 0% (1/122)
remote: Counting objects: 1% (2/122)
remote: Counting objects: 2% (3/122)
remote: Counting objects: 3% (4/122)
remote: Counting objects: 4% (5/122)
remote: Counting objects: 5% (7/122)
remote: Counting objects: 6% (8/122)
remote: Counting objects: 7% (9/122)
remote: Counting objects: 8% (10/122)
remote: Counting objects: 9% (11/122)
remote: Counting objects: 10% (13/122)
remote: Counting objects: 11% (14/122)
remote: Counting objects: 12% (15/122)
remote: Counting objects: 13% (16/122)
remote: Counting objects: 14% (18/122)
remote: Counting objects: 15% (19/122)
remote: Counting objects: 16% (20/122)
remote: Counting objects: 17% (21/122)
remote: Counting objects: 18% (22/122)
remote: Counting objects: 19% (24/122)
remote: Counting objects: 20% (25/122)
remote: Counting objects: 21% (26/122)
remote: Counting objects: 22% (27/122)
remote: Counting objects: 23% (29/122)
remote: Counting objects: 24% (30/122)
remote: Counting objects: 25% (31/122)
remote: Counting objects: 26% (32/122)
remote: Counting objects: 27% (33/122)
remote: Counting objects: 28% (35/122)
remote: Counting objects: 29% (36/122)
remote: Counting objects: 30% (37/122)
remote: Counting objects: 31% (38/122)
remote: Counting objects: 32% (40/122)
remote: Counting objects: 33% (41/122)
remote: Counting objects: 34% (42/122)
remote: Counting objects: 35% (43/122)
remote: Counting objects: 36% (44/122)
remote: Counting objects: 37% (46/122)
remote: Counting objects: 38% (47/122)
remote: Counting objects: 39% (48/122)
remote: Counting objects: 40% (49/122)
remote: Counting objects: 41% (51/122)
remote: Counting objects: 42% (52/122)
remote: Counting objects: 43% (53/122)
remote: Counting objects: 44% (54/122)
remote: Counting objects: 45% (55/122)
remote: Counting objects: 46% (57/122)
remote: Counting objects: 47% (58/122)
remote: Counting objects: 48% (59/122)
remote: Counting objects: 49% (60/122)
remote: Counting objects: 50% (61/122)
remote: Counting objects: 51% (63/122)
remote: Counting objects: 52% (64/122)
remote: Counting objects: 53% (65/122)
remote: Counting objects: 54% (66/122)
remote: Counting objects: 55% (68/122)
remote: Counting objects: 56% (69/122)
remote: Counting objects: 57% (70/122)
remote: Counting objects: 58% (71/122)
remote: Counting objects: 59% (72/122)
remote: Counting objects: 60% (74/122)
remote: Counting objects: 61% (75/122)
remote: Counting objects: 62% (76/122)
remote: Counting objects: 63% (77/122)
remote: Counting objects: 64% (79/122)
remote: Counting objects: 65% (80/122)
remote: Counting objects: 66% (81/122)
remote: Counting objects: 67% (82/122)
remote: Counting objects: 68% (83/122)
remote: Counting objects: 69% (85/122)
remote: Counting objects: 70% (86/122)
remote: Counting objects: 71% (87/122)
remote: Counting objects: 72% (88/122)
remote: Counting objects: 73% (90/122)
remote: Counting objects: 74% (91/122)
remote: Counting objects: 75% (92/122)
remote: Counting objects: 76% (93/122)
remote: Counting objects: 77% (94/122)
remote: Counting objects: 78% (96/122)
remote: Counting objects: 79% (97/122)
remote: Counting objects: 80% (98/122)
remote: Counting objects: 81% (99/122)
remote: Counting objects: 82% (101/122)
remote: Counting objects: 83% (102/122)
remote: Counting objects: 84% (103/122)
remote: Counting objects: 85% (104/122)
remote: Counting objects: 86% (105/122)
remote: Counting objects: 87% (107/122)
remote: Counting objects: 88% (108/122)
remote: Counting objects: 89% (109/122)
remote: Counting objects: 90% (110/122)
remote: Counting objects: 91% (112/122)
remote: Counting objects: 92% (113/122)
remote: Counting objects: 93% (114/122)
remote: Counting objects: 94% (115/122)
remote: Counting objects: 95% (116/122)
remote: Counting objects: 96% (118/122)
remote: Counting objects: 97% (119/122)
remote: Counting objects: 98% (120/122)
remote: Counting objects: 99% (121/122)
remote: Counting objects: 100% (122/122)
remote: Counting objects: 100% (122/122), done.
remote: Compressing objects: 0% (1/111)
remote: Compressing objects: 1% (2/111)
remote: Compressing objects: 2% (3/111)
remote: Compressing objects: 3% (4/111)
remote: Compressing objects: 4% (5/111)
remote: Compressing objects: 5% (6/111)
remote: Compressing objects: 6% (7/111)
remote: Compressing objects: 7% (8/111)
remote: Compressing objects: 8% (9/111)
remote: Compressing objects: 9% (10/111)
remote: Compressing objects: 10% (12/111)
remote: Compressing objects: 11% (13/111)
remote: Compressing objects: 12% (14/111)
remote: Compressing objects: 13% (15/111)
remote: Compressing objects: 14% (16/111)
remote: Compressing objects: 15% (17/111)
remote: Compressing objects: 16% (18/111)
remote: Compressing objects: 17% (19/111)
remote: Compressing objects: 18% (20/111)
remote: Compressing objects: 19% (22/111)
remote: Compressing objects: 20% (23/111)
remote: Compressing objects: 21% (24/111)
remote: Compressing objects: 22% (25/111)
remote: Compressing objects: 23% (26/111)
remote: Compressing objects: 24% (27/111)
remote: Compressing objects: 25% (28/111)
remote: Compressing objects: 26% (29/111)
remote: Compressing objects: 27% (30/111)
remote: Compressing objects: 28% (32/111)
remote: Compressing objects: 29% (33/111)
remote: Compressing objects: 30% (34/111)
remote: Compressing objects: 31% (35/111)
remote: Compressing objects: 32% (36/111)
remote: Compressing objects: 33% (37/111)
remote: Compressing objects: 34% (38/111)
remote: Compressing objects: 35% (39/111)
remote: Compressing objects: 36% (40/111)
remote: Compressing objects: 37% (42/111)
remote: Compressing objects: 38% (43/111)
remote: Compressing objects: 39% (44/111)
remote: Compressing objects: 40% (45/111)
remote: Compressing objects: 41% (46/111)
remote: Compressing objects: 42% (47/111)
remote: Compressing objects: 43% (48/111)
remote: Compressing objects: 44% (49/111)
remote: Compressing objects: 45% (50/111)
remote: Compressing objects: 46% (52/111)
remote: Compressing objects: 47% (53/111)
remote: Compressing objects: 48% (54/111)
remote: Compressing objects: 49% (55/111)
remote: Compressing objects: 50% (56/111)
remote: Compressing objects: 51% (57/111)
remote: Compressing objects: 52% (58/111)
remote: Compressing objects: 53% (59/111)
remote: Compressing objects: 54% (60/111)
remote: Compressing objects: 55% (62/111)
remote: Compressing objects: 56% (63/111)
remote: Compressing objects: 57% (64/111)
remote: Compressing objects: 58% (65/111)
remote: Compressing objects: 59% (66/111)
remote: Compressing objects: 60% (67/111)
remote: Compressing objects: 61% (68/111)
remote: Compressing objects: 62% (69/111)
remote: Compressing objects: 63% (70/111)
remote: Compressing objects: 64% (72/111)
remote: Compressing objects: 65% (73/111)
remote: Compressing objects: 66% (74/111)
remote: Compressing objects: 67% (75/111)
remote: Compressing objects: 68% (76/111)
remote: Compressing objects: 69% (77/111)
remote: Compressing objects: 70% (78/111)
remote: Compressing objects: 71% (79/111)
remote: Compressing objects: 72% (80/111)
remote: Compressing objects: 73% (82/111)
remote: Compressing objects: 74% (83/111)
remote: Compressing objects: 75% (84/111)
remote: Compressing objects: 76% (85/111)
remote: Compressing objects: 77% (86/111)
remote: Compressing objects: 78% (87/111)
remote: Compressing objects: 79% (88/111)
remote: Compressing objects: 80% (89/111)
remote: Compressing objects: 81% (90/111)
remote: Compressing objects: 82% (92/111)
remote: Compressing objects: 83% (93/111)
remote: Compressing objects: 84% (94/111)
remote: Compressing objects: 85% (95/111)
remote: Compressing objects: 86% (96/111)
remote: Compressing objects: 87% (97/111)
remote: Compressing objects: 88% (98/111)
remote: Compressing objects: 89% (99/111)
remote: Compressing objects: 90% (100/111)
remote: Compressing objects: 91% (102/111)
remote: Compressing objects: 92% (103/111)
remote: Compressing objects: 93% (104/111)
remote: Compressing objects: 94% (105/111)
remote: Compressing objects: 95% (106/111)
remote: Compressing objects: 96% (107/111)
remote: Compressing objects: 97% (108/111)
remote: Compressing objects: 98% (109/111)
remote: Compressing objects: 99% (110/111)
remote: Compressing objects: 100% (111/111)
remote: Compressing objects: 100% (111/111), done.
Receiving objects: 0% (1/122)
Receiving objects: 1% (2/122)
Receiving objects: 2% (3/122)
Receiving objects: 3% (4/122)
Receiving objects: 4% (5/122)
Receiving objects: 5% (7/122)
Receiving objects: 6% (8/122)
Receiving objects: 7% (9/122)
Receiving objects: 8% (10/122)
Receiving objects: 9% (11/122)
Receiving objects: 10% (13/122)
Receiving objects: 11% (14/122)
Receiving objects: 12% (15/122)
Receiving objects: 13% (16/122)
Receiving objects: 14% (18/122)
Receiving objects: 15% (19/122)
Receiving objects: 16% (20/122)
Receiving objects: 17% (21/122)
Receiving objects: 18% (22/122)
Receiving objects: 19% (24/122)
Receiving objects: 20% (25/122)
Receiving objects: 21% (26/122)
Receiving objects: 22% (27/122)
Receiving objects: 23% (29/122)
Receiving objects: 24% (30/122)
Receiving objects: 25% (31/122)
Receiving objects: 26% (32/122)
Receiving objects: 27% (33/122)
Receiving objects: 28% (35/122)
Receiving objects: 29% (36/122)
Receiving objects: 30% (37/122)
Receiving objects: 31% (38/122)
Receiving objects: 32% (40/122)
Receiving objects: 33% (41/122)
Receiving objects: 34% (42/122)
Receiving objects: 35% (43/122)
Receiving objects: 36% (44/122)
Receiving objects: 37% (46/122)
Receiving objects: 38% (47/122)
Receiving objects: 39% (48/122)
Receiving objects: 40% (49/122)
Receiving objects: 41% (51/122)
Receiving objects: 42% (52/122)
Receiving objects: 43% (53/122)
Receiving objects: 44% (54/122)
Receiving objects: 45% (55/122)
Receiving objects: 46% (57/122)
Receiving objects: 47% (58/122)
Receiving objects: 48% (59/122)
Receiving objects: 49% (60/122)
Receiving objects: 50% (61/122)
Receiving objects: 51% (63/122)
Receiving objects: 52% (64/122)
Receiving objects: 53% (65/122)
Receiving objects: 54% (66/122)
Receiving objects: 55% (68/122)
Receiving objects: 56% (69/122)
Receiving objects: 57% (70/122)
Receiving objects: 58% (71/122)
Receiving objects: 59% (72/122)
Receiving objects: 60% (74/122)
Receiving objects: 61% (75/122)
Receiving objects: 62% (76/122)
Receiving objects: 63% (77/122)
Receiving objects: 64% (79/122)
Receiving objects: 65% (80/122)
Receiving objects: 66% (81/122)
Receiving objects: 67% (82/122)
Receiving objects: 68% (83/122)
Receiving objects: 69% (85/122)
Receiving objects: 70% (86/122)
Receiving objects: 71% (87/122)
Receiving objects: 72% (88/122)
Receiving objects: 73% (90/122)
Receiving objects: 74% (91/122)
Receiving objects: 75% (92/122)
Receiving objects: 76% (93/122)
Receiving objects: 77% (94/122)
Receiving objects: 78% (96/122)
Receiving objects: 79% (97/122)
Receiving objects: 80% (98/122)
Receiving objects: 81% (99/122)
Receiving objects: 82% (101/122)
Receiving objects: 83% (102/122)
Receiving objects: 84% (103/122)
Receiving objects: 85% (104/122)
Receiving objects: 86% (105/122)
Receiving objects: 87% (107/122)
Receiving objects: 88% (108/122)
Receiving objects: 89% (109/122)
Receiving objects: 90% (110/122)
Receiving objects: 91% (112/122)
Receiving objects: 92% (113/122)
Receiving objects: 93% (114/122)
remote: Total 122 (delta 38), reused 0 (delta 0)
Receiving objects: 94% (115/122)
Receiving objects: 95% (116/122)
Receiving objects: 96% (118/122)
Receiving objects: 97% (119/122)
Receiving objects: 98% (120/122)
Receiving objects: 99% (121/122)
Receiving objects: 100% (122/122)
Receiving objects: 100% (122/122), 24.50 KiB | 8.17 MiB/s, done.
Resolving deltas: 0% (0/38)
Resolving deltas: 2% (1/38)
Resolving deltas: 10% (4/38)
Resolving deltas: 15% (6/38)
Resolving deltas: 18% (7/38)
Resolving deltas: 21% (8/38)
Resolving deltas: 23% (9/38)
Resolving deltas: 31% (12/38)
Resolving deltas: 34% (13/38)
Resolving deltas: 42% (16/38)
Resolving deltas: 44% (17/38)
Resolving deltas: 47% (18/38)
Resolving deltas: 50% (19/38)
Resolving deltas: 52% (20/38)
Resolving deltas: 55% (21/38)
Resolving deltas: 57% (22/38)
Resolving deltas: 60% (23/38)
Resolving deltas: 63% (24/38)
Resolving deltas: 71% (27/38)
Resolving deltas: 76% (29/38)
Resolving deltas: 78% (30/38)
Resolving deltas: 86% (33/38)
Resolving deltas: 100% (38/38)
Resolving deltas: 100% (38/38), done.
Switched to a new branch 'test_s2i'
Branch 'test_s2i' set up to track remote branch 'test_s2i' from 'origin'.
I0219 12:14:26.323596 1 clone.go:56] Checked out to "test_s2i"
I0219 12:14:26.340884 1 clone.go:62] Updated submodules for "test_s2i"
I0219 12:14:26.352270 1 fs.go:302] Removing directory '/tmp/s2i230304812/upload/src'
I0219 12:14:26.356842 1 fs.go:302] Removing directory '/tmp/s2i230304812/upload/tmp'
I0219 12:14:26.359398 1 install.go:261] Using "assemble" installed from "image:///usr/libexec/s2i/assemble"
I0219 12:14:26.359423 1 install.go:261] Using "run" installed from "image:///usr/libexec/s2i/run"
I0219 12:14:26.359436 1 install.go:261] Using "save-artifacts" installed from "image:///usr/libexec/s2i/save-artifacts"
I0219 12:14:26.359457 1 ignore.go:64] .s2iignore file does not exist
I0219 12:14:26.359469 1 sti.go:214] Clean build will be performed
I0219 12:14:26.359478 1 sti.go:228] Running "assemble" in "<镜像仓库>/infra/open-api:v4.0"
I0219 12:14:26.359487 1 sti.go:592] Using image name kubesphere/python-36-centos7:v2.1.0
I0219 12:14:26.361034 1 docker.go:506] Using locally available image "kubesphere/python-36-centos7:v2.1.0"
I0219 12:14:26.361077 1 environment.go:41] Setting 1 environment variables provided by environment file in sources
I0219 12:14:26.361174 1 sti.go:710] starting the source uploading ...
I0219 12:14:26.363686 1 docker.go:808] Image sha256:696369947b4ef710ba836bcc1b94019b6bcf1adba2a0c41447af82880fd59264 contains scripts-url set to "image:///usr/libexec/s2i"
I0219 12:14:26.363696 1 docker.go:882] Base directory for S2I scripts is '/usr/libexec/s2i'. Untarring destination is '/tmp'.
I0219 12:14:26.363813 1 docker.go:1048] Creating container with options {Name:"s2i_kubesphere_python_36_centos7_v2_1_0_7dcf7823" Config:{Hostname: Domainname: User: AttachStdin:false AttachStdout:true AttachStderr:false ExposedPorts:map[] Tty:false OpenStdin:true StdinOnce:true Env:[PIP_INDEX_URL=https://mirrors.aliyun.com/pypi/simple/] Cmd:[/bin/sh -c tar -C /tmp -xf - && /usr/libexec/s2i/assemble] Healthcheck:<nil> ArgsEscaped:false Image:kubesphere/python-36-centos7:v2.1.0 Volumes:map[] WorkingDir: Entrypoint:[] NetworkDisabled:false MacAddress: OnBuild:[] Labels:map[] StopSignal: StopTimeout:<nil> Shell:[]} HostConfig:&{Binds:[s2i_python36_cache:/opt/app-root/lib] ContainerIDFile: LogConfig:{Type: Config:map[]} NetworkMode: PortBindings:map[] RestartPolicy:{Name: MaximumRetryCount:0} AutoRemove:false VolumeDriver: VolumesFrom:[] CapAdd:[] CapDrop:[] DNS:[] DNSOptions:[] DNSSearch:[] ExtraHosts:[] GroupAdd:[] IpcMode: Cgroup: Links:[] OomScoreAdj:0 PidMode: Privileged:false PublishAllPorts:false ReadonlyRootfs:false SecurityOpt:[] StorageOpt:map[] Tmpfs:map[] UTSMode: UsernsMode: ShmSize:67108864 Sysctls:map[] Runtime: ConsoleSize:[0 0] Isolation: Resources:{CPUShares:0 Memory:0 NanoCPUs:0 CgroupParent: BlkioWeight:0 BlkioWeightDevice:[] BlkioDeviceReadBps:[] BlkioDeviceWriteBps:[] BlkioDeviceReadIOps:[] BlkioDeviceWriteIOps:[] CPUPeriod:0 CPUQuota:0 CPURealtimePeriod:0 CPURealtimeRuntime:0 CpusetCpus: CpusetMems: Devices:[] DeviceCgroupRules:[] DiskQuota:0 KernelMemory:0 MemoryReservation:0 MemorySwap:0 MemorySwappiness:<nil> OomKillDisable:<nil> PidsLimit:0 Ulimits:[] CPUCount:0 CPUPercent:0 IOMaximumIOps:0 IOMaximumBandwidth:0} Mounts:[] Init:<nil>}} ...
I0219 12:14:26.409694 1 docker.go:1080] Attaching to container "aa93d37e36d8d5fe3950ba1021c4241993c62108f2c2aeba317f6e5a5843de79" ...
I0219 12:14:26.410187 1 docker.go:1091] Starting container "aa93d37e36d8d5fe3950ba1021c4241993c62108f2c2aeba317f6e5a5843de79" ...
I0219 12:14:26.635509 1 sti.go:718] ---> Installing application source ...
I0219 12:14:26.637548 1 sti.go:718] ---> Installing dependencies ...
I0219 12:14:26.964159 1 sti.go:718] Requirement already satisfied: Django==1.11.23 in /opt/app-root/lib/python3.6/site-packages (from -r requirements.txt (line 1))
I0219 12:14:26.968443 1 sti.go:718] Requirement already satisfied: pytz in /opt/app-root/lib/python3.6/site-packages (from Django==1.11.23->-r requirements.txt (line 1))
I0219 12:14:27.644327 1 sti.go:722] You are using pip version 9.0.1, however version 20.0.2 is available.
I0219 12:14:27.644342 1 sti.go:722] You should consider upgrading via the 'pip install --upgrade pip' command.
I0219 12:14:27.716181 1 sti.go:718] ---> Collecting Django static files ...
I0219 12:14:28.378996 1 sti.go:718] Copying '/opt/app-root/lib/python3.6/site-packages/django/contrib/admin/static/admin/css/base.css'
I0219 12:14:28.379664 1 sti.go:718] Copying '/opt/app-root/lib/python3.6/site-packages/django/contrib/admin/static/admin/css/changelists.css'
I0219 12:14:28.380036 1 sti.go:718] Copying '/opt/app-root/lib/python3.6/site-packages/django/contrib/admin/static/admin/css/dashboard.css'
I0219 12:14:28.380371 1 sti.go:718] Copying '/opt/app-root/lib/python3.6/site-packages/django/contrib/admin/static/admin/css/fonts.css'
I0219 12:14:28.380702 1 sti.go:718] Copying '/opt/app-root/lib/python3.6/site-packages/django/contrib/admin/static/admin/css/forms.css'
I0219 12:14:28.380987 1 sti.go:718] Copying '/opt/app-root/lib/python3.6/site-packages/django/contrib/admin/static/admin/css/login.css'
I0219 12:14:28.381682 1 sti.go:718] Copying '/opt/app-root/lib/python3.6/site-packages/django/contrib/admin/static/admin/css/rtl.css'
I0219 12:14:28.382265 1 sti.go:718] Copying '/opt/app-root/lib/python3.6/site-packages/django/contrib/admin/static/admin/css/widgets.css'
I0219 12:14:28.383080 1 sti.go:718] Copying '/opt/app-root/lib/python3.6/site-packages/django/contrib/admin/static/admin/fonts/LICENSE.txt'
I0219 12:14:28.383660 1 sti.go:718] Copying '/opt/app-root/lib/python3.6/site-packages/django/contrib/admin/static/admin/fonts/README.txt'
I0219 12:14:28.383959 1 sti.go:718] Copying '/opt/app-root/lib/python3.6/site-packages/django/contrib/admin/static/admin/fonts/Roboto-Bold-webfont.woff'
I0219 12:14:28.384401 1 sti.go:718] Copying '/opt/app-root/lib/python3.6/site-packages/django/contrib/admin/static/admin/fonts/Roboto-Light-webfont.woff'
I0219 12:14:28.384735 1 sti.go:718] Copying '/opt/app-root/lib/python3.6/site-packages/django/contrib/admin/static/admin/fonts/Roboto-Regular-webfont.woff'
I0219 12:14:28.385305 1 sti.go:718] Copying '/opt/app-root/lib/python3.6/site-packages/django/contrib/admin/static/admin/img/LICENSE'
I0219 12:14:28.385670 1 sti.go:718] Copying '/opt/app-root/lib/python3.6/site-packages/django/contrib/admin/static/admin/img/README.txt'
I0219 12:14:28.385949 1 sti.go:718] Copying '/opt/app-root/lib/python3.6/site-packages/django/contrib/admin/static/admin/img/calendar-icons.svg'
I0219 12:14:28.386285 1 sti.go:718] Copying '/opt/app-root/lib/python3.6/site-packages/django/contrib/admin/static/admin/img/icon-addlink.svg'
I0219 12:14:28.386562 1 sti.go:718] Copying '/opt/app-root/lib/python3.6/site-packages/django/contrib/admin/static/admin/img/icon-alert.svg'
I0219 12:14:28.386902 1 sti.go:718] Copying '/opt/app-root/lib/python3.6/site-packages/django/contrib/admin/static/admin/img/icon-calendar.svg'
I0219 12:14:28.387292 1 sti.go:718] Copying '/opt/app-root/lib/python3.6/site-packages/django/contrib/admin/static/admin/img/icon-changelink.svg'
I0219 12:14:28.387572 1 sti.go:718] Copying '/opt/app-root/lib/python3.6/site-packages/django/contrib/admin/static/admin/img/icon-clock.svg'
I0219 12:14:28.387846 1 sti.go:718] Copying '/opt/app-root/lib/python3.6/site-packages/django/contrib/admin/static/admin/img/icon-deletelink.svg'
I0219 12:14:28.388113 1 sti.go:718] Copying '/opt/app-root/lib/python3.6/site-packages/django/contrib/admin/static/admin/img/icon-no.svg'
I0219 12:14:28.388447 1 sti.go:718] Copying '/opt/app-root/lib/python3.6/site-packages/django/contrib/admin/static/admin/img/icon-unknown-alt.svg'
I0219 12:14:28.388763 1 sti.go:718] Copying '/opt/app-root/lib/python3.6/site-packages/django/contrib/admin/static/admin/img/icon-unknown.svg'
I0219 12:14:28.389071 1 sti.go:718] Copying '/opt/app-root/lib/python3.6/site-packages/django/contrib/admin/static/admin/img/icon-yes.svg'
I0219 12:14:28.389395 1 sti.go:718] Copying '/opt/app-root/lib/python3.6/site-packages/django/contrib/admin/static/admin/img/inline-delete.svg'
I0219 12:14:28.389711 1 sti.go:718] Copying '/opt/app-root/lib/python3.6/site-packages/django/contrib/admin/static/admin/img/search.svg'
I0219 12:14:28.390085 1 sti.go:718] Copying '/opt/app-root/lib/python3.6/site-packages/django/contrib/admin/static/admin/img/selector-icons.svg'
I0219 12:14:28.390419 1 sti.go:718] Copying '/opt/app-root/lib/python3.6/site-packages/django/contrib/admin/static/admin/img/sorting-icons.svg'
I0219 12:14:28.390722 1 sti.go:718] Copying '/opt/app-root/lib/python3.6/site-packages/django/contrib/admin/static/admin/img/tooltag-add.svg'
I0219 12:14:28.391041 1 sti.go:718] Copying '/opt/app-root/lib/python3.6/site-packages/django/contrib/admin/static/admin/img/tooltag-arrowright.svg'
I0219 12:14:28.391455 1 sti.go:718] Copying '/opt/app-root/lib/python3.6/site-packages/django/contrib/admin/static/admin/img/gis/move_vertex_off.svg'
I0219 12:14:28.391785 1 sti.go:718] Copying '/opt/app-root/lib/python3.6/site-packages/django/contrib/admin/static/admin/img/gis/move_vertex_on.svg'
I0219 12:14:28.392291 1 sti.go:718] Copying '/opt/app-root/lib/python3.6/site-packages/django/contrib/admin/static/admin/js/SelectBox.js'
I0219 12:14:28.392654 1 sti.go:718] Copying '/opt/app-root/lib/python3.6/site-packages/django/contrib/admin/static/admin/js/SelectFilter2.js'
I0219 12:14:28.392929 1 sti.go:718] Copying '/opt/app-root/lib/python3.6/site-packages/django/contrib/admin/static/admin/js/actions.js'
I0219 12:14:28.393223 1 sti.go:718] Copying '/opt/app-root/lib/python3.6/site-packages/django/contrib/admin/static/admin/js/actions.min.js'
I0219 12:14:28.393501 1 sti.go:718] Copying '/opt/app-root/lib/python3.6/site-packages/django/contrib/admin/static/admin/js/calendar.js'
I0219 12:14:28.393786 1 sti.go:718] Copying '/opt/app-root/lib/python3.6/site-packages/django/contrib/admin/static/admin/js/cancel.js'
I0219 12:14:28.394051 1 sti.go:718] Copying '/opt/app-root/lib/python3.6/site-packages/django/contrib/admin/static/admin/js/change_form.js'
I0219 12:14:28.394342 1 sti.go:718] Copying '/opt/app-root/lib/python3.6/site-packages/django/contrib/admin/static/admin/js/collapse.js'
I0219 12:14:28.394614 1 sti.go:718] Copying '/opt/app-root/lib/python3.6/site-packages/django/contrib/admin/static/admin/js/collapse.min.js'
I0219 12:14:28.394888 1 sti.go:718] Copying '/opt/app-root/lib/python3.6/site-packages/django/contrib/admin/static/admin/js/core.js'
I0219 12:14:28.395160 1 sti.go:718] Copying '/opt/app-root/lib/python3.6/site-packages/django/contrib/admin/static/admin/js/inlines.js'
I0219 12:14:28.395449 1 sti.go:718] Copying '/opt/app-root/lib/python3.6/site-packages/django/contrib/admin/static/admin/js/inlines.min.js'
I0219 12:14:28.395717 1 sti.go:718] Copying '/opt/app-root/lib/python3.6/site-packages/django/contrib/admin/static/admin/js/jquery.init.js'
I0219 12:14:28.395989 1 sti.go:718] Copying '/opt/app-root/lib/python3.6/site-packages/django/contrib/admin/static/admin/js/popup_response.js'
I0219 12:14:28.396316 1 sti.go:718] Copying '/opt/app-root/lib/python3.6/site-packages/django/contrib/admin/static/admin/js/prepopulate.js'
I0219 12:14:28.396738 1 sti.go:718] Copying '/opt/app-root/lib/python3.6/site-packages/django/contrib/admin/static/admin/js/prepopulate.min.js'
I0219 12:14:28.396968 1 sti.go:718] Copying '/opt/app-root/lib/python3.6/site-packages/django/contrib/admin/static/admin/js/prepopulate_init.js'
I0219 12:14:28.397295 1 sti.go:718] Copying '/opt/app-root/lib/python3.6/site-packages/django/contrib/admin/static/admin/js/timeparse.js'
I0219 12:14:28.397607 1 sti.go:718] Copying '/opt/app-root/lib/python3.6/site-packages/django/contrib/admin/static/admin/js/urlify.js'
I0219 12:14:28.397984 1 sti.go:718] Copying '/opt/app-root/lib/python3.6/site-packages/django/contrib/admin/static/admin/js/admin/DateTimeShortcuts.js'
I0219 12:14:28.398386 1 sti.go:718] Copying '/opt/app-root/lib/python3.6/site-packages/django/contrib/admin/static/admin/js/admin/RelatedObjectLookups.js'
I0219 12:14:28.398765 1 sti.go:718] Copying '/opt/app-root/lib/python3.6/site-packages/django/contrib/admin/static/admin/js/vendor/jquery/LICENSE-JQUERY.txt'
I0219 12:14:28.399191 1 sti.go:718] Copying '/opt/app-root/lib/python3.6/site-packages/django/contrib/admin/static/admin/js/vendor/jquery/jquery.js'
I0219 12:14:28.399751 1 sti.go:718] Copying '/opt/app-root/lib/python3.6/site-packages/django/contrib/admin/static/admin/js/vendor/jquery/jquery.min.js'
I0219 12:14:28.400186 1 sti.go:718] Copying '/opt/app-root/lib/python3.6/site-packages/django/contrib/admin/static/admin/js/vendor/xregexp/LICENSE-XREGEXP.txt'
I0219 12:14:28.400597 1 sti.go:718] Copying '/opt/app-root/lib/python3.6/site-packages/django/contrib/admin/static/admin/js/vendor/xregexp/xregexp.js'
I0219 12:14:28.401010 1 sti.go:718] Copying '/opt/app-root/lib/python3.6/site-packages/django/contrib/admin/static/admin/js/vendor/xregexp/xregexp.min.js'
I0219 12:14:28.401349 1 sti.go:718]
I0219 12:14:28.401358 1 sti.go:718] 61 static files copied to '/opt/app-root/src/staticfiles'.
I0219 12:14:29.306576 1 docker.go:1122] Waiting for container "aa93d37e36d8d5fe3950ba1021c4241993c62108f2c2aeba317f6e5a5843de79" to stop ...
I0219 12:14:29.407014 1 docker.go:1147] Invoking PostExecute function
I0219 12:14:29.407034 1 postexecutorstep.go:68] Skipping step: store previous image
I0219 12:14:29.407044 1 postexecutorstep.go:117] Executing step: commit image
I0219 12:14:29.408538 1 postexecutorstep.go:521] Checking for new Labels to apply...
I0219 12:14:29.408554 1 postexecutorstep.go:529] Creating the download path '/tmp/s2i230304812/metadata'
I0219 12:14:29.458215 1 postexecutorstep.go:537] unable to download and extract 'image_metadata.json' ... continuing
I0219 12:14:29.574248 1 postexecutorstep.go:392] Executing step: report success
I0219 12:14:29.574264 1 postexecutorstep.go:396] Successfully built <镜像仓库>/infra/open-api:v4.0
I0219 12:14:29.574269 1 postexecutorstep.go:93] Skipping step: remove previous image
I0219 12:14:29.574294 1 docker.go:1058] Removing container "aa93d37e36d8d5fe3950ba1021c4241993c62108f2c2aeba317f6e5a5843de79" ...
I0219 12:14:29.590961 1 docker.go:1068] Removed container "aa93d37e36d8d5fe3950ba1021c4241993c62108f2c2aeba317f6e5a5843de79"
I0219 12:14:29.591109 1 docker.go:635] Begin to push image <<镜像仓库>/infra/open-api:v4.0>
I0219 12:14:29.842340 1 docker.go:666] pushing image <镜像仓库>/infra/open-api:v4.0: [> ] 10.24kB/1.018MB
I0219 12:14:29.918455 1 docker.go:666] pushing image <镜像仓库>/infra/open-api:v4.0: [==================================================>] 1.121MB
I0219 12:14:31.354842 1 docker.go:690] pushing image succeed
I0219 12:14:31.356398 1 sti.go:269] Start output build info.
I0219 12:14:31.375693 1 cleanup.go:33] Removing temporary directory /tmp/s2i230304812
I0219 12:14:31.375707 1 fs.go:302] Removing directory '/tmp/s2i230304812'
I0219 12:14:31.378833 1 s2i.go:82] Build completed successfully
日志显示,镜像构建成功,并成功上传到镜像仓库;
问题出现


PS: 镜像一直无法下载
查看配置模板


修改镜像仓库地址为上图后保存

ERROR: don't know how to run your application.
Please set either APP_MODULE, APP_FILE or APP_SCRIPT environment variables, or create a file 'app.py' to launch your application.
疑问点
从源码看 python-36-centos7:V2.1.0 的 run 脚本, 如果安装了 django,默认会运行 python manager.py runserver;
为啥报错说找不到 app.py ; 难道还要自己写个启动脚本吗 ?