哪种语言做网站好,下载ppt模板免费的网站,建微信网站模板,云盘可以做网站吗众所周知, 最近 docker 镜像的使用又出现了新的困难. 但是不怕, 窝们可以使用曲线救国的方法: 自己制作容器镜像 !
下面以 deno/fresh 举栗, 部署一个简单的应用.
目录
1 创建 deno/fresh 项目2 构建 docker 镜像3 部署和测试4 总结与展望
1 创建 deno/fresh 项目
执行命令…众所周知, 最近 docker 镜像的使用又出现了新的困难. 但是不怕, 窝们可以使用曲线救国的方法: 自己制作容器镜像 !
下面以 deno/fresh 举栗, 部署一个简单的应用.
目录
1 创建 deno/fresh 项目2 构建 docker 镜像3 部署和测试4 总结与展望
1 创建 deno/fresh 项目
执行命令:
deno run -A -r https://fresh.deno.dev初始化 git 仓库并提交: cd test-2406git init .
已初始化空的 Git 仓库于 /home/s2/test-2406/.git/git add .git commit -m test fresh
[main根提交 2e2084b] test fresh21 files changed, 339 insertions()create mode 100644 .gitignorecreate mode 100644 .vscode/extensions.jsoncreate mode 100644 .vscode/settings.jsoncreate mode 100644 .vscode/tailwind.jsoncreate mode 100644 README.mdcreate mode 100644 components/Button.tsxcreate mode 100644 deno.jsoncreate mode 100755 dev.tscreate mode 100644 fresh.config.tscreate mode 100644 fresh.gen.tscreate mode 100644 islands/Counter.tsxcreate mode 100644 main.tscreate mode 100644 routes/_404.tsxcreate mode 100644 routes/_app.tsxcreate mode 100644 routes/api/joke.tscreate mode 100644 routes/greet/[name].tsxcreate mode 100644 routes/index.tsxcreate mode 100644 static/favicon.icocreate mode 100644 static/logo.svgcreate mode 100644 static/styles.csscreate mode 100644 tailwind.config.tsgit status
位于分支 main
无文件要提交干净的工作区2 构建 docker 镜像
创建文件 Dockerfile:
FROM quay.io/jitesoft/alpine:latestARG GIT_REVISION
ENV DENO_DEPLOYMENT_ID${GIT_REVISION}RUN sed -i s/ftp.halifax.rwth-aachen.de/mirrors.sjtug.sjtu.edu.cn/g /etc/apk/repositories
RUN apk update apk upgrade apk add curl zstd deno icu-data-full apk cache cleanWORKDIR /appCOPY . .
RUN deno cache main.ts deno task buildEXPOSE 8000CMD [/usr/bin/deno, run, -A, /app/main.ts]执行命令:
docker build --build-arg GIT_REVISION$(git rev-parse HEAD) -t my-app .构建成功: docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
my-app latest 83173f90cca5 About a minute ago 227MB
quay.io/jitesoft/alpine latest c7ecb923af0e 37 hours ago 7.82MB将构建成功的容器镜像导出为压缩包: docker save my-app | zstd my-app.tar.zstls -lh my-app.tar.zst
-rw-r--r-- 1 s2 s2 77M 6月13日 10:01 my-app.tar.zst3 部署和测试
将压缩包文件 my-app.tar.zst 复制到要部署的机器, 导入容器镜像: docker load my-app.tar.zst
31e29b5ab918: Loading layer [] 3.072kB/3.072kB
c83c49512daf: Loading layer [] 145.6MB/145.6MB
ff9964444958: Loading layer [] 1.536kB/1.536kB
6389ca351a5d: Loading layer [] 171kB/171kB
2ca6496c9f8b: Loading layer [] 83.91MB/83.91MB
Loaded image: my-app:latestdocker images
REPOSITORY TAG IMAGE ID CREATED SIZE
my-app latest 83173f90cca5 2 minutes ago 227MB运行容器: docker run -it -p 8000:8000 my-app
Using snapshot found at /app/_fresh Fresh ready Local: http://localhost:8000/浏览器打开页面: 4 总结与展望
容器是一种很好的技术, 开发, 测试, 部署运行都很方便快速.
窝们应该掌握容器镜像的构建方法, 做到更灵活的运行容器, 从而在复杂多变的网络环境中稳定持久运行. 参考资料:
https://deno.com/https://fresh.deno.dev/https://quay.io/repository/jitesoft/alpinehttps://www.alpinelinux.org/https://docs.alpinelinux.org/user-handbook/0.1a/Working/apk.htmlhttps://mirror.sjtu.edu.cn/docs/alpine 本文使用 CC-BY-SA 4.0 许可发布.