Docker练习场

本篇记录学习使用Docker进行参赛结果的提交,并记录使用过程中容易遇到的一些常见的问题。
官方指导教程:《手把手超详细操作说明》

1 赛题介绍

赛题入口:link
在这里插入图片描述

2 Docker

1 安装 Docker 环境:

sudo apt-get update
sudo apt install docker.io

《Docker操作命令详解》

2 按官方指导教程:《手把手超详细操作说明》创建仓库。

3 制作自己的数据

建立一个做题的文件夹,并进入路径

sudo mkdir -p /home/tianchi_docker && cd /home/tianchi_docker

按照赛题要求创建相应文件

touch Dockerfile hello_world.py result.json run.sh

在创建好的Dockerfile中配置以下内容,并保存

扫描二维码关注公众号,回复: 12920229 查看本文章
# Base Images
## 从天池基础镜像构建
FROM registry.cn-shanghai.aliyuncs.com/tcc-public/python:3

## 把当前文件夹里的文件构建到镜像的根目录下
ADD . /

## 指定默认工作目录为根目录(需要把run.sh和生成的结果文件都放在该文件夹下,提交后才能运行)
WORKDIR /

## 镜像启动后统一执行 sh run.sh
CMD ["sh", "run.sh"]

hello-world.py 中写好自己的做题的代码,注意:所给csv数据直接导入路径即可

以下是完整代码:

# coding:utf-8

import json
import csv

file_name = './tcdata/num_list.csv'
data = []

# 第一题,直接写入 Hello world
result = {
    
    
    "Q1": "Hello world",
    "Q2": 0,
    "Q3": []
}

# 第二题,求和
with open(file_name, 'r', encoding='utf-8') as f:
    reader = csv.reader(f)
    for row in reader:
        data.append(int(row[0]))

sum = sum(data)
result['Q2'] = sum

# 第三题
result['Q3'] = sorted(data, reverse=True)[0:10]

# 保存到 result.json
with open('result.json', 'w', encoding='utf-8') as f:
    json.dump(result, f)

run.sh 中(一定要与你之前创建的答题代码文件名相同):

python hello_world.py

4 创建镜像并推送
创建镜像

docker build -t registry.cn-shanghai.aliyuncs.com/命名空间/仓库名称:版本号 上面创建好的文件夹路径

查看docker

sudo docker images

登录阿里云Docker Registry

sudo docker login --username=用户名 registry.cn-shanghai.aliyuncs.com

将镜像推送到Registry

sudo docker push registry.cn-shanghai.aliyuncs.com/命名空间/仓库名称:版本号

3 提交结果

在左侧【提交结果】中填写推送的镜像路径、用户名和密码,即可提交。根据【我的成绩】中的分数和日志可以查看运行情况。
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weixin_48994268/article/details/115238428