从0到1构建工具站
- 网页在线编程工具构建(php、go、python)
- 搜集其他在线编程网站
- 构建php8运行环境
- Dockerfile
- docker-compose.yaml
- 构建python运行环境
- Dockerfile
- docker-compose.yml
- 核心调用python的docker-sdk包执行命令
- 执行文件流程
- 执行命令流程
- python
- php
- 最终参考站
- 总结
网页在线编程工具构建(php、go、python)
出于对网页在线编程网站原理的好奇,深入学习和研究了其实现过程。网页在线编程工具,特别是支持 PHP、Go 和 Python 等语言的工具,为开发者提供了极大的便利,使编程变得更加灵活和高效,简单代码不用再自行搭建环境。其中也有一些缺点,接下来是具体实现过程。
搜集其他在线编程网站
- https://www.bejson.com/runcode/php/
- https://www.json.cn/run/python3/
分析:
多语言环境下直接使用docker构建好环境,然后执行指定文件或者直接执行命令的方式比较符合特征。因为Docker 容器隔离了运行时环境,确保了不同项目之间不会发生冲突。多个版本的同一应用或服务可以在不同的容器中并行运行,互不干扰。
构建php8运行环境
Dockerfile
FROM php:8.4-fpm
# 创建用户并添加到 sudo 组
RUN useradd --create-home --no-log-init --shell /bin/bash www \&& adduser www sudo
# 切换到新用户
USER www
docker-compose.yaml
注意文件夹下创建data目录
services:php8.4:container_name: php8.4volumes:- ./data:/home/userworking_dir: /home/userbuild:context: .dockerfile: Dockerfileports:- 9110:9000deploy:resources: limits: cpus: '2' # 设置最大 CPU 限制为 0.5 个 CPU memory: 512M # 设置最大内存限制为 512 MB reservations: cpus: '1' # 设置保留 CPU 资源为 0.2 个 CPU(可选) memory: 500M # 设置保留内存资源为 256 MB(可选)
构建python运行环境
Dockerfile
注意requirements.txt .中写自己想要安装的库
FROM python:3.12-slim# 创建用户并添加到 sudo 组
RUN useradd --create-home --no-log-init --shell /bin/bash www \&& adduser www sudo# 切换到新用户
USER www
WORKD