首页 > 其他分享 >autolab搭建教程

autolab搭建教程

时间:2024-07-15 17:32:45浏览次数:12  
标签:教程 autolab 443 宿主机 VM nginx https 搭建

主要照着官方文档配置:https://docs.docker.com/compose/install/linux/#install-using-the-repository

这里主要讲一些坑点。

SSL

官方教程:https://docs.autolabproject.com/installation/docker-compose/#configuring-tlsssl

(not working) autolab自带的证书申请机制

sudo ./ssl/init-letsencrypt.sh

报错:

  Detail: 47.74.9.105: Fetching http://autolab.db.iiis.io/.well-known/acme-challenge/fCaVWPv4jdINFSnaBILQ4RToTJRZc1aiTrUed2ZOlyQ: Connection refused

但是宿主机80和443都开着。

结论:自带的SSL证书申请不work。

在宿主机申请SSL证书

用acme申请,网上有很多教程,这里不再赘述。

acme需要在宿主机运行nginx并监听80端口。一种比较简单的方法是直接让autolab的container的443端口映射到宿主机的443,宿主机的nginx不监听443。

另一种方法是在宿主机上的nginx监听443,把autolab的container的443映射到一个随机端口,然后让宿主机的nginx把访问autolab域名的https流量转发给autolab监听的端口:

server {
	listen 443 ssl;
	listen [::]:443 ssl;
	server_name autolab域名;
	ssl_certificate /root/.acme.sh/autolab域名_ecc/fullchain.cer;
	ssl_certificate_key /root/.acme.sh/autolab域名_ecc/autolab域名.key;
	client_max_body_size 0;
	location / {
		proxy_pass https://localhost:autolab端口;
		proxy_set_header Host autolab域名;
	}
}

其中client_max_body_size 0;防止附件过大的提交被宿主机nginx拦截。

注意:不要把autolab配置成不使用ssl的同时在外面套一层SSL,因为这样tango和autolab之间的通信会出问题。可能是因为tango往autolab发消息仍然使用的http,然后被外面的nginx拒绝。

发送邮件

gmail

绑定手机号开启两步验证,然后就可以创建app password了。

Amazon SES

一定要申请production mode。sandbox模式下只能发信给指定地址。只有production mode才能发信给任意地址:https://repost.aws/knowledge-center/ses-554-400-message-rejected-error

(不推荐) sendgrid

不知道为什么注册不了。而且帐号过一段时间不用就不能再用了:https://stackoverflow.com/questions/68056093/sendgrid-mails-are-always-in-pending-status

autograder要安装pkill

需要在Dockerfile里apt install -y procps

不然会报这个错:

Autodriver: Unable to exec at line 277: No such file or directory
Autodriver: Error killing user processes at line 365

Tango/config.py

更改了之后重启docker即可生效:

sudo docker compose stop
sudo docker compose up -d

改大VM_ULIMIT_USER_PROC

VM_ULIMIT_USER_PROC默认100,太小了。改大一些:

VM_ULIMIT_USER_PROC = 10000

太小的话分配太多std::async会失败,然后似乎会fall back到单线程模式。

VM_ULIMIT_FILE_SIZE

如果autograde的时候报了这个错:

Error running link command: SIGXFSZ

说明编译产生的文件大小超限了。在Tango/config.py里把VM_ULIMIT_FILE_SIZE设置大一些(默认100MiB)

注意,VM_ULIMIT_FILE_SIZE似乎是用32 bit integer存的,所以值一定要小于4G,不然会溢出。

标签:教程,autolab,443,宿主机,VM,nginx,https,搭建
From: https://www.cnblogs.com/searchstar/p/18303616

相关文章

  • centos8 内核升级教程 执行安装成功后 reboot
    Centos处理步骤先设置DNS为114.114.114.114等CentOS8升级内核到6.9步骤1查看内核现状版本4.18[[email protected]]#hostnamectlStatichostname:localhost.localdomainIconname:computer-vmChassis:vmMachineID:1c063b9ed186473e891a2fe6ac0a072c......
  • 基于AM5708开发板——开箱初探+环境搭建、源码编译
    本次测评板卡是创龙科技旗下的TL570x-EVM,它是一款基于TISitara系列AM5708ARMCortex-A15+浮点DSPC66x处理器设计的异构多核SOC评估板,由核心板和评估底板组成。核心板经过专业的PCBLayout和高低温测试验证,稳定可靠,可满足各种工业应用环境。评估板接口资源丰富,引出双路PRU百兆......
  • Apollo 教程
    关于Apollo的教程,这可能是指几个不同的内容领域,因为“Apollo”这个名字关联了多个技术项目和框架。以下是两个最常见领域的教程指引:1.ApolloGraphQLApollo是一个广泛使用的开源GraphQL客户端和服务端工具集,它帮助开发者构建数据驱动的现代应用程序。如果你是在寻找关于......
  • 企业跨省组网怎么搭建
    在数字化浪潮席卷而来的今天,5G、VoIP、AI、物联网等前沿技术与云计算深度融合,共同推动企业业务的飞速发展。面对这一变革,企业如何构建一套高性能、超融合、运维简便的SD-WAN解决方案,以满足日益增长的跨省组网互联需求,已成为业界关注的焦点。SD-WAN,即软件定义广域网,通过将SDN......
  • 小游戏对接广告联盟变现的APP开发 源码搭建
    小游戏对接广告联盟变现的APP开发在源码搭建方面涉及多个步骤和考虑因素。以下是一个概述:需求分析与定位:确定游戏类型(如休闲、益智、动作等)、目标用户群体以及游戏的核心玩法1。研究市场趋势,了解类似游戏的成功因素,以及广告联盟的选择和收益模式1。游戏设计与开发:设计游戏......
  • AI绘画Stable Diffusion 零基础入门 —AI 绘画原理与工具介绍,万字解析AI绘画的使用教
    大家好,我是设计师阿威想要入门AI绘画,首先需要了解它的原理是什么样的。其实很早就已经有人基于深度学习模型展开了对图像生成的研究了,但在那时,生成的图像分辨率和内容都非常抽象。直到近两年,AI产出的图像内容的质量变高、而且有一定的艺术价值,这时它才算正式拥有了理......
  • AI绘画Stable Diffusion教程,6种提示词角度!精准实现你的 stable diffusion 创作意图!
    1、引言本期内容的核心目标是向你展示构图、风格、媒介、画面清晰度、灯光效果以及颜色氛围等6大类别中的常用标签(tags),这些标签将为你提供更深入的理解,并帮助你更有效地编写提示词(prompt)。这些标签可以大大影响AI绘图模型生成的图片内容,掌握好它们的使用,将有助于你在AI绘......
  • 如何使用AI绘画工具stable diffusion填充画外内容?保姆级教程建议收藏!
    大家好,我是设计师阿威当我们尝试绘制高分辨率的图片时,传统的SD模型常常会遇到诸多问题,例如元素重复、显存不足和生成时间过长等。但如果只绘制低分辨率的图片,却很难生成丰富的画面元素和细节。我们可以借助outpaint来解决这个问题。Outpaint可以简单地理解为绘制画外内容,......
  • K8S教程:如何使用Kubeadm命令在PetaExpress Ubuntu系统上安装Kubernetes集群
    Kubernetes,通常缩写为K8s,是一个开源的容器编排平台,旨在自动化容器化应用的部署、扩展和管理。有了Kubernetes,您可以轻松地部署、更新和扩展应用,而无需担心底层基础设施。一个Kubernetes集群由控制平面节点(master节点)和工作节点(worker节点)组成。确保集群的高效运......
  • 简单的小波分析入门教程(第一部分,Python)
    importnumpyasnpimportmatplotlib.pyplotaspltimportpywtSimpleSignalAnalysisusingDWT#Generatethesignalt=np.linspace(0,1,1000,endpoint=False)signal=np.cos(2.0*np.pi*7*t)+np.sin(2.0*np.pi*13*t)#ApplyDWTcoeffs=p......