文档章节

qduoj~前端~二次开发~打包docker镜像并上传到阿里云容器镜像仓库

虚拟世界的懒猫
 虚拟世界的懒猫
发布于 08/19 01:11
字数 807
阅读 19
收藏 0

上一篇文章https://my.oschina.net/finchxu/blog/1930017记录了怎么在本地修改前端,现在我要把我的修改添加到部署到本地的前端的docker容器中,然后打包这个容器成为一个本地镜像,然后把这个本地镜像上传到阿里云的容器镜像仓库,这样就方便以后的实机部署。

本地环境还是Ubuntu14-64bit没有变,其实就是上一篇文章的继续,电脑我都没关。。。

1.首先在本地部署前端的镜像,

在这个文件里,找到oj-backend,直接pull这里的image

docker pull registry.cn-hangzhou.aliyuncs.com/onlinejudge/oj_backend

让这个镜像UP启动程容器即可,来到下一步:

2.回到之前你在本地修改完的代码根目录:

这时候构建webpack 的相关文件,开发与生产环境是不一样的。

NODE_ENV=production npm run build:dll
npm run build

用上边的命令构建项目,可能需要一点时间。

3.把更改的东西注入到正在运行的那个容器里面:

docker cp ./dist 这里输入容器的ID:/app/

如何查看容器ID呢:

docker ps -a

这里可以区分一下容器和镜像,镜像是静态的就相当于光盘,是只读文件,而容器是通过镜像启动的,所以我们要把修改好的前端项目注入到正在运行的容器里面。

4.然后把容器打包建立成本地镜像

docker commit -m "提示信息" -a "作者" 容器ID 镜像名称
docker images

这样就可以看到你制作的本地镜像了。

5.现在可以开始pull到阿里云的容器镜像仓库

去阿里云那里申请一个仓库,免费的,把仓库名称写成oj-backend即可。创建成功他会给你一个页面提示你如何上传,很详细。

sudo docker login --username=你的用户名 registry.cn-beijing.aliyuncs.com
#[ImageId]是你刚才创建的镜像ID,可以docker images查一下,顺便能查到镜像版本号TAG
sudo docker tag [ImageId] registry.这里用阿里云给你提供的即可/oj-backend:[镜像版本号]
sudo docker push registry.这里用阿里云给你提供的即可/oj-backend:[镜像版本号]

TAG就是上边需要写的版本号,还有IMAGE ID就是镜像ID。

然后就会开始push完毕就成功上传了。

6.这时候去你fork的qduoj官方安装文件里,把oj-backend的image改成你的阿里云提供的公网或者私有地址,然后进行整体的部署就可以使用OJ了,怎么部署整体OJ?看这里:https://my.oschina.net/finchxu/blog/1927273

大功告成!

 

参考文档:

万分感谢这些大触和前辈!

https://usermanual.wiki/Document/Instructions.1857041035.pdf

https://www.cnblogs.com/lin1/p/5982969.html

https://docs.docker.com/develop/develop-images/baseimages/#create-a-simple-parent-image-using-scratch

https://www.jianshu.com/p/5b46736a57e0

© 著作权归作者所有

共有 人打赏支持
虚拟世界的懒猫
粉丝 1
博文 28
码字总数 16240
作品 0
唐山
个人站长
Docker学习之搭建JavaWeb环境进阶篇

上一篇文章中,简单了学习了一下在Docker环境中搭建JavaWeb环境,其实这时候已经是一个全新的镜像了,就是我们的Ghost系统一样,装配了各式各样的软件一样,以后使用的时候直接安装镜像即可。...

小柒2012
01/09
0
0
Docker 之 基于容器的镜像制作

1 概述 镜像包含启动容器所需的文件系统和内容,可以理解为打包的文件,用于创建并启动docker容器。 镜像的生成途径有三个: 1.基于dockerfile实现,镜像制作的程序文件 2.基于容器实现,启动...

ghbSunny
08/05
0
0
基于Jenkins,docker实现自动化部署(持续交互)【转】

前言 随着业务的增长,需求也开始增多,每个需求的大小,开发周期,发布时间都不一致。基于微服务的系统架构,功能的叠加,对应的服务的数量也在增加,大小功能的快速迭代,更加要求部署的快...

sunsky303
06/21
0
0
unbuntu安装Docker

核心概念docker镜像、docker容器、docker仓库docker镜像:类似于虚拟机镜像,只读的模板,是创建docker容器的基础。通过版本管理和增量文件系统,有一个很简单的机制来创建和更新现有镜像。如...

Tom杰
2017/11/18
0
0
Docker 入门实践

欢迎大家前往腾讯云技术社区,获取更多腾讯海量技术实践干货哦~ 作者:张戈 导语:应用场景从创建、上传直到部署的详细过程,并简单的介绍了腾讯云容器服务的使用方法。通过Docker快速拉起一...

2017/12/18
0
0

没有更多内容

加载失败,请刷新页面

加载更多

多线程

1. 多线程概念。并发和并行的概念。 多线程指的是一段时间内cpu同时执行多个线程。一个程序至少运行>=1个进程,进程就是运行中的程序,而一个进程至少运行>=1个线程,线程是操作系统能调度的...

鱼想吃肉
今天
0
0
HBase 表修复在线方式和离线方式

一、在线修复 1.1 使用检查命令 $ ./bin/hbase hbck 该命令可完整修复 HBase 元数据信息;存在有错误信息会进行输出; 也可以通过如下命令查看详细信息: $ ./bin/hbase hbck -details 1.2 ...

Ryan-瑞恩
今天
3
0
redis 系列二 -- 常用命令

1.基础命令 info ping quit save dbsize select flushdb flushall 2.键命令 2.1 set 直接赋值 set a a 2.2 get 取值 get a 2.3 exists 是否存在 exists a 2.4 expire 设置剩余时间 秒 expire......

imbiao
今天
2
0
php foreach

<?php// 数组的引用$a=array(1,2,3,4,5);foreach($a as $key=>&$value){$value=$value*2;}print_r($a);echo " $key -------------------$value\r\n";/** * ...

小张525
今天
3
0
12-利用思维导图梳理JavaSE-多线程

12-利用思维导图梳理JavaSE-多线程 主要内容 1.线程概念 2.线程开发 3.线程的状态 4.线程的同步和死锁 5.Java5.0并发库类 QQ/知识星球/个人WeChat/公众号二维码 本文为原创文章,如果对你有一...

飞鱼说编程
今天
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部