首页 > 其他分享 >Django-配置docker、git环境与项目创建

Django-配置docker、git环境与项目创建

时间:2022-11-17 19:47:30浏览次数:81  
标签:git 仓库 server1 django 服务器 docker Django

Django-配置docker、git环境与项目创建

django官方社区

django官方文档

acwingDjango课学习笔记

Django项目笔记

前提

租好了云服务器,并配置好了免密登录

我的云服务器免密登录的别名是myserver1

配置docker

也可以参考自己之前写的博客:在自己服务器上配置docker

1.传docker镜像

image

将django的镜像用scp传到myserver1

scp django_lesson_1_0.tar myserver1:

ssh到myserver1可以看到镜像已经传过来了

image


2.将镜像加载出来到本地(云服务器)

docker load -i django_lesson_1_0.tar

加载完之后docker images可以看到myserver1上有哪些镜像
image

红框中就是我们刚刚scp过去的、接下来django项目用的docker镜像


3.使用本地镜像创建docker容器(云服务器上搭建云服务器)

docker run -p 20001:22 -p 8000:8000 --name django_server1 -itd django_lesson:1.0

这里将这个docker容器(django_server1)的22端口映射到本机(云服务器)没有用过的端口20001,将8000映射到8000(后面调试会用到)

由于云服务器用了20001和8000端口,我需要去阿里云给我的服务器开放20001和8000端口(我的服务器是阿里云的)

image

现在的django_server1就是云服务器上的云服务器hh


4.进入刚刚创建的django_server1docker容器

image

进入docker容器,其实就相当于进入了一个自己服务器上的一个虚拟服务器,现在是在root下。

5.配置my_docker_server密码

passwd

挂起docker容器:ctrl+pctrl+q(不要用ctrl+d!!会关掉容器)

接下来试试,从云服务器登录django_server1

挂起django_server1后,在云服务器myserver1中,直接ssh到django_server1

ssh root@localhost -p 20001

image


6.新建用户rds并给这个用户sudo权限

新建用户,配置密码,一路回车

adduser rds

分配sudo权限(此后这个用户rds想用root权限命令的时候前面加一个sudo就行)

usermod -aG sudo rds

现在可以远程登录django_server1的rds用户啦
在ac terminal中ssh到django_server1的rds用户

ssh rds@云端服务器ip -p 20001

配置django_server1免密登录

ac terminal免密登录django_server1
编写/.ssh/config

Host django_server1
    HostName 云服务器ip
    User rds
    Port 20001

这样就把它别名改成了django_server1(为了方便,把docker容器名和这里免密登录别名都写成一样的了)

配置免密登录

ssh-copy-id django_server1

使用别名免密登录

ssh rds@django_server1
或
ssh django_server1 #config中此别名下如果只有一个用户可以这样

至此免密登录django_server1完毕!~


传tmux、vim祖传三件套

回到ac terminal

scp .bashrc .vimrc .tmux.conf django_server1:

git环境 && 建立django项目

可以先看看本地django版本

django-admin --version

1.新建django项目

django-admin start project acapp

此时在当前目录下新建了个acapp的文件夹,可以使用tree命令看看是什么样子的

image


2.配置git与项目创建

1.建立本地git仓库

进入到我们项目根目录/acapp

要使用git维护起来这个项目,可以使得回滚更加方便
(下面两行代码应该在/acapp根目录中执行)

git init 
ssh-keygen

到现在我们在我们的acapp中建立好了本地git仓库

2.创建远程代码仓库

打开https://git.acwing.com/,创建项目

image

3.为远程仓库配置秘钥

查看公钥,将公钥复制下来

cat /.ssh/id_rsa.pub

将公钥添加到自己acgit的ssh秘钥库

image


git仓库配置

image
复制输入这两行

/acapp下写个README.md,推送到(本地django_server1的acapp下的git)仓库

git status
git add .
git commit -m "add readme"

将本地仓库关联到远程仓库

git remote add origin [email protected]:rds/acapp.git

可能需要先将本地设置本地的origin分支对应远程仓库的master分支

git push --set-upstream origin master

将本地仓库推送到远程仓库

git push

结果如下:

image

运行django

来运行一下看看是否成功了

python3 manage.py runserver 0.0.0.0:8000

(官方文档可能没有0.0.0.0:8000,这里要加上的,否则可能会有bug)

访问:云服务器ip:8000
image

打开发现是这样的,这里是因为django的安全措施,django运允许访问特定的ip(具体在官方文档),我们把自己云服务器的ip地址添加到ALLOWED_HOSTS即可

在django_server1中使用以下命令来找到ALLWOED_HOSTS所在的文件,然后将本机ip添加进去

ag ALLOWED_HOSTS

本机ip写进去ALLOWED_HOSTS之后刷新云服务器ip:8000:

image

接下来就应该git statusgit commit -m "版本名"git push

但是git status时会有一个__pycache__的文件夹,这里面存放的是django的预编译的文件,这个文件不是我们的源代码,是python每次自己生成来加速python运行的,我们不能把这个里面的文件放入我们的git仓库,因为这个里面的文件是我们不需要保存下来的(每次都把这个放入git仓库会污染我们的代码,让我们的仓库看起来很混乱)

/acapp下新建一个 .gitignore写入

*/__pycache__

image

然后git status
image
可以发现不会再将__pycache__推送到仓库
接下来

git status
git commit -m "modify allow hosts"
git push

将代码传到远程仓库

创建game

一般开两个tmux,一个tmmux用来开发,另一个tmux用来运行django和提交代码给仓库

python3 manage.py startapp game

可以发现多了个game文件夹
image

提交到远程仓库。

django的管理界面

django提供了一个管理界面/admin (云服务器ip:8000/admin)

使用这个页面之前,先把数据库更新一下,返回刚刚django运行的pane,停止运行,输入python3 manage.py migrate

这时可以正常进入admin登录页面了

创建管理员账号

python3 manage.py createsuperuser

设置账号密码,邮箱不设置可以直接回车

然后登录,就可以看到管理员页面啦

image

可以将admin账号密码先保存在readme.md中

使用git推送到远程仓库中。

标签:git,仓库,server1,django,服务器,docker,Django
From: https://www.cnblogs.com/rdisheng/p/16897574.html

相关文章

  • 项目git-flow版本控制优化
    优化前git-flow流程之前团队的版本控制是基于​​git-flow​​的基础上进行简化,同时也缺乏review的流程,主要的流程及操作如下:分支主要有master,develop,rele......
  • Linux 环境下使用 docker 安装 MongoDB
    在学习尚医通的项目过程中P66的学习内容,其中内容不完全和老师相同。1.拉取镜像dockerpullmongo:latest2.创建和启动容器在dockerrun中加入–privileged=true给......
  • Linux 安装 dockers
    本文包含安装docker和docker启动指定安装查看可安装版本:yumlistdocker-ce--showduplicates|sort-r安装(直接安装最新版本)yum-yinstalldocker指定安装......
  • docker之数据卷
    1.什么是数据卷?数据卷是持久化数据,它的生命周期独立于容器,Docker不会再容器被删后自动删除数据卷,数据卷也不会被垃圾回收这样的机制处理掉,所有无用的数据卷要及时处理掉,......
  • Git
    Git简述git用来干什么比如在工作中,我们对一份稿子不断修改。你怕修改后有什么错误出现,把原来的文件也损坏了。你修改到一定程度,改错了想撤销,但是此时文件已经保存......
  • docker、Containerd ctr、crictl 区别
    简述作为接替Docker运行时的Containerd在早在Kubernetes1.7时就能直接与Kubelet集成使用,只是大部分时候我们因熟悉Docker,在部署集群时采用了默认的dockershim。......
  • git commit 规范
    1.gitcommit说明我们都知道,Git每次提交代码,都要写Commitmessage(提交说明),否则就不允许提交,这其实就是规范。2.Commitmessage作用格式化的Commitmessage,有几个好......
  • Django model 中的 class Meta 详解
    通过一个内嵌类"classMeta"给你的model定义元数据classCourseCategory(BaseModel):name=models.CharField(max_length=64,unique=True,verbose_name='分类名......
  • 升级node.js造成vue启动报错:digital envelope routines::unsupported
    原文:https://blog.csdn.net/qq_45039822/article/details/126195373今天把node.js升级到了最新版v18.12.1,启动vue项目时报错:digitalenveloperoutines::unsupported,在网......
  • docker inspect |mysql IPADRESS
    version:'3'services:db:#构建mysql镜像image:mysqlcontainer_name:mysql-db#容器名restart:alwaysenvironme......