跳至主要內容

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

萌萌哒草头将军大约 5 分钟DockerDocker

image.png
image.png

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

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

docker push ctjj/like-girl:latest

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

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

原项目地址:https://gitee.com/kiCode111/LikeGirl5.0.0open in new window

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

情侣小站

Dockerfile

首先,我们拉去代码:

git clone https://gitee.com/kiCode111/LikeGirl_5.1.0.git

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

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

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

# 使用基础的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 文件,将下面的变量注释或删除掉。

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

准备好数据库

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

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
image.png

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

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

image.png
image.png

打包和运行

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

docker build -t love_girl:latest

查看打包好的镜像

docker images

保存到本地

docker save -o love_girl.tar love_girl:latest

-o 输出路径

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

docker load -i /path/to/love_girl.tar

-i 从什么路径加载进去

查看是否加载进去镜像

docker images

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

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,内容如下:

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"

然后使用命令行:

docker-compose up -d

-d 后台启动

查看状态

docker-compose ps

关闭服务

docker-compose down

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

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

上传 dockerhub

tag

docker tag love_girl:latest ctjj/like-girl:latest

上传:

docker push ctjj/like-girl:latest

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

nginx部署

vi /etc/nginx/nginx.conf

添加如下:

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;
    }
}

重载:

nginx -s reload

配置图床

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

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

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

mysql -u root -p
CREATE DATABASE picture;
show DATABASES;
image.png

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

docker network create lsky-net
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文件启动!

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-dockeropen in new window

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

总结

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

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

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

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

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