前往小程序,Get更优阅读体验!
立即前往
发布
社区首页 >专栏 >🌹🌹原来Docker可以让这个情人💗节这么浪漫🌹🌹

🌹🌹原来Docker可以让这个情人💗节这么浪漫🌹🌹

原创
作者头像
萌萌哒草头将军
发布2025-02-13 15:31:49
发布2025-02-13 15:31:49
8400
代码可运行
举报
文章被收录于专栏:前端框架前端框架
运行总次数:0
代码可运行

📌 文章同步在公众号:萌萌哒草头将军,欢迎关注!

本文是正经的 docker 教程,如果你是老手了,请直接下载:

代码语言:javascript
代码运行次数:0
复制
docker push ctjj/like-girl:latest

如果你不打算使用 docker 那么直接拉取代码运行就可以了,如果你想使用 docker,但是无法下载,可以去我公众号后台回复:love,即可获得打包好的镜像

情人节马上要到了,正好最近发现了一个特别有意思的情侣相册的项目,遗憾的是目前不支持 docker,不过没关系,我出手了!

原项目地址:https://gitee.com/kiCode111/LikeGirl5.0.0

下面是制作情侣小站 镜像 的过程

情侣小站

Dockerfile

首先,我们拉去代码:

代码语言:javascript
代码运行次数:0
复制
git clone https://gitee.com/kiCode111/LikeGirl_5.1.0.git

clone 代码后,在根目录下新建一个 Dockerfile 文件。

该文件用于自动化创建 Docker 镜像的过程。里面包含了运行这个应用所需的所有代码、库、依赖项和运行时环境。

由于该项目是php项目,所以我们需要指定基础镜像为php

代码语言:javascript
代码运行次数:0
复制
# 使用基础的PHP镜像作为基础
FROM php:apache

# 设置工作目录
WORKDIR /app

RUN docker-php-ext-install pdo_mysql mysqli
# 拷贝目录下的所有文件到工作目录
COPY / /app

# 定义容器启动时执行的命令(例如:运行PHP的内置服务器)
CMD ["php", "-S", "0.0.0.0:8383", "-t", "/app"]

增加环境变变量

接下来需要注释几个环境变量,打开./admin/Config_DB.php 文件,将下面的变量注释或删除掉。

代码语言:javascript
代码运行次数:0
复制
// localhost 为数据库地址 一般使用默认的即可 或(127.0.0.1)
// $db_address = "localhost";
//数据库用户名
// $db_username = "root";
//数据库密码
// $db_password = "123456";
//数据库表名
// $db_name = "LikeGirl20240612";
//敏感信息修改安全码 建议设置复杂一些
// $Like_Code = "Love";

准备好数据库

在你的机器上准备好 mysql 数据库,你可以使用 docker 镜像运行数据库或者服务器数据库,

代码语言:javascript
代码运行次数:0
复制
docker run --name mysql5.7 \
  -e MYSQL_ROOT_PASSWORD=xxx \
  -e MYSQL_DATABASE=love \
  -e MYSQL_USER=root \
  -e MYSQL_PASSWORD=xxxx \
  -p 3306:3306 \
  -d mysql:5.7.22

image.png

然后使用数据库客户端链接,根据准备好的文件./love20240612.sql 执行 sql 创建命令,创建对应的表。

推荐使用 vscode 插件,链接数据库,打开 sql 文件点击执行按钮快速创建

image.png

打包和运行

现在我们可以在根目录下使用下面的命令打包:

代码语言:javascript
代码运行次数:0
复制
docker build -t love_girl:latest

查看打包好的镜像

代码语言:javascript
代码运行次数:0
复制
docker images

保存到本地

代码语言:javascript
代码运行次数:0
复制
docker save -o love_girl.tar love_girl:latest

-o 输出路径

上传到服务器后,我们还需要加载到服务器的 docker 镜像

代码语言:javascript
代码运行次数:0
复制
docker load -i /path/to/love_girl.tar

-i 从什么路径加载进去

查看是否加载进去镜像

代码语言:javascript
代码运行次数:0
复制
docker images

一切成功后,我们可以启动了,一种是命令行启动:

代码语言:javascript
代码运行次数:0
复制
docker run -d \
  --name love \
  --restart always \
  -p 1314:8383 \
  -e DB_PASSWORD="xxx" \
  -e DB_NAME="xxx" \
  -e DB_USERNAME="root" \
  -e LIKE_CODE="xxxx" \
  -e DB_ADDRESS="192.168.x.xxx" \
  like_girl

或者我们使用 docker-compose.yaml 文件启动!

在你准备好的目录下面创建文件:docker-compose.yaml,内容如下:

代码语言:javascript
代码运行次数:0
复制
version: "3.2"

services:
  love:
    image: love_girl # 使用已创建的镜像
    ports:
      - "1314:8383"
    container_name: love
    restart: always
    environment:
      DB_PASSWORD: "xxx"
      DB_NAME: "xxx"
      DB_USERNAME: "root"
      LIKE_CODE: "xxxx"
      DB_ADDRESS: "192.168.x.xxx"

然后使用命令行:

代码语言:javascript
代码运行次数:0
复制
docker-compose up -d

-d 后台启动

查看状态

代码语言:javascript
代码运行次数:0
复制
docker-compose ps

关闭服务

代码语言:javascript
代码运行次数:0
复制
docker-compose down

好了,现在我们打开 http://localhost:1314 就可以看到首页了!

进入管理页面: http://localhost:1314/admin/!

上传dockerhub

tag

代码语言:javascript
代码运行次数:0
复制
docker tag love_girl:latest ctjj/like-girl:latest

上传:

代码语言:javascript
代码运行次数:0
复制
docker push ctjj/like-girl:latest

如果你已经有自己的图床提供图片链接,那么到这里就结束了,如果你还没有,可以接着部署一个图床!

nginx部署

代码语言:javascript
代码运行次数:0
复制
vi /etc/nginx/nginx.conf

添加如下:

代码语言:javascript
代码运行次数:0
复制
server {
    listen 80;
    server_name www.xxxx.com;

    location / {
        proxy_pass http://127.0.0.1:1314;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
    }
}

重载:

代码语言:javascript
代码运行次数:0
复制
nginx -s reload

配置图床

我使用的是蓝空图床,项目地址:https://github.com/lsky-org/lsky-pro

如果你想要 docker 镜像,通用可以到我公众号后台回复:love,根据情况下载即可!

部署前,我们需要在上面提到的数据库中新增一个存放图片信息的库,

代码语言:javascript
代码运行次数:0
复制
mysql -u root -p
CREATE DATABASE picture;
show DATABASES;

然后使用下面的命令运行安装蓝空图床,

代码语言:javascript
代码运行次数:0
复制
docker network create lsky-net
代码语言:javascript
代码运行次数:0
复制
docker run -d \
  --name lskypro \
  --restart unless-stopped \
  --hostname lskypro \
  -e WEB_PORT=8089 \
  -v ./web:/var/www/html/ \
  -p 9080:8089 \
  --network lsky-net \
  halcyonazure/lsky-pro-docker:latest

或者同样用 docker-compose.yaml文件启动!

代码语言:javascript
代码运行次数:0
复制
version: "3.2"
services:
  lskypro:
    image: halcyonazure/lsky-pro-docker:latest
    restart: unless-stopped
    hostname: lskypro
    container_name: lskypro
    environment:
      - WEB_PORT=8089
    volumes:
      - ./web:/var/www/html/
    ports:
      - "9080:8089"
    networks:
      - lsky-net

networks:
  lsky-net: {}

或者参考这里:https://hub.docker.com/r/halcyonazure/lsky-pro-docker

然后在首页配置刚才创建的数据库,即可自动创建对应组件,等创建完成,我们就可以上传图片之后得到图片链接了!

总结

希望大家都可以通过这个教程博美人一笑!

另外为了增加浪漫气氛,建议大家还可以:

  • 偷偷换一个情侣壁纸
  • 提前买好花朵、红酒、烛台,准备一个浪漫的烛光晚餐
  • 提前做好一个手工作为礼物

我给我老婆做的手工戒指
我给我老婆做的手工戒指

元宵节快乐呀!提前祝大家情人节愉快~

最后文章中如果有错误的地方欢迎指正!

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 情侣小站
    • Dockerfile
    • 增加环境变变量
    • 准备好数据库
    • 打包和运行
    • 上传dockerhub
    • nginx部署
  • 配置图床
    • 总结
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档