用docker部署webstack导航网站-其一

news2024/11/18 8:29:55

序言

认识的好朋友斥资买了一个NAS,并搭建了webdev和其他一些web应用,用于存放电子书、电影,并用alist搭建了一个网盘。现在他还缺少一个导航页,于是拖我给他做一个导航页。我欣然接受了,他想做一个和TBox导航,链接如下:

TBox导航icon-default.png?t=MBR7https://www.tboxn.com/

一样的导航页,于是我找到了TBox导航的模板,使用的是一个名为webstack的开源前端模板,Github链接如下:

❤️静态响应式网址导航网站 - webstack.ccicon-default.png?t=MBR7https://github.com/WebStackPage/

这是一个还在进展中的项目,后台管理系统还在搭建,我的想法是自己给它做一个,至于是用django、flask还是ssm,目前还没想好。

今天,我先把前端跑了起来,有一个小伙伴贡献了用php做后端的docker,我直接用docker把他pull了下来,原本以为最多2小时就能搞定的事情结果搞了一上午加半个下午。谨此,我把本次使用docker遇到的问题给记录下,以便后续查阅。

关于该项目的后端,后续后空我会一步步地完成,并在博客上记录下来。

在webstack的github官方页面上,我找到了docker镜像相关的内容,这意味着我不需要自己用dockerfille去创建镜像了。因此,我感到很开心;殊不知,这才是噩梦的开始。

遇到的问题

主要是这两个问题:

  • webstack容器无法运行
  • 网站报错:No application encryption key has been specified

安装webstack的docker镜像

我参考了webstack的docker镜像官方的指南。如下所示:

arvon2014/webstack-laravelicon-default.png?t=MBR7https://hub.docker.com/r/arvon2014/webstack-laravel/tags安装了1.2.2版本的镜像:

docker pull arvon2014/webstack-laravel:v1.2.2

然后使用docker run命令创建了一个容器:

docker run -itd --name my_navigation_website -p XXXXX:8000 arvon2014/webstack-laravel:v1.2.2

 但是,通过

docker ps -a

查看的时候,发现容器my_navigation_website状态是exit的,说明已经挂了,没有运行起来。于是,我开始寻找原因。由于官方文档写的很差劲,我花了许久的时间,才发现是因为该容器需要一个mysql,而且偶没有特意给它创建一个mysql。于是,原本只有一个容器,现在成了两个容器,我打算用docker-compose处理。

使用docker-compose管理两个docker

于是我根据官方指南:

 

顺理成章地写出这个docker-compose.yml文件:

version: "3"

services:
    navigation_website:
        image: arvon2014/webstack-laravel:v1.2.2
        container_name: my_navigation_website
        ports:
            - "XXXXX:8000"
        volumes:
            - /etc/navigation_website
        networks:
            -  lingjianhua_network
        environment:
            DB_HOST: ***.***.***.***
            DB_PORT: XXXXX
            DB_PASSWORD: **********
        depends_on:
            - mysql

    mysql:
        image: mysql:5.6
        container_name: navigation_website_mysql
        environment:
            MYSQL_ROOT_PASSWORD: **************
            MYSQL_ALLOW_WMPTY_PASSWORD: 'no'
            MYSQL_DATABASE: 'XXXXXXXX'
            MYSQL_USER: 'XXXXXXX'
            MYSQL_PASSWORD: *******************
        ports:
            - "XXXXX:3306"
        volumes:
            - /app/mysql/db:/var/libmysql
            - /app/mysql/conf/my.cnf:/etc/my.cnf
            - /app/mysql/init:/docker-entrypoint-initdb.d
        networks:
            -  lingjianhua_network


networks:
    lingjianhua_network:

由于是在同个服务器上,我使用了network进行连接,使得容器可以互相通信,具体的地址和端口我码了。然后我使用了命令

docker-compose pull
docker-compose up

运行了mysql,然后再用

docker ps -a

 命令查看情况,我发现mysql起来了,但是网站的那个docker挂掉了。我用了navicat链接了下数据库发现问题没有,那就是webstack的问题了。

经过大概3小时的查验,我偶然解决了这个问题,只要将docker镜像的版本换成1.2.1即可解决。具体是什么原因我不得而知。终于,两个docker都是UP状态了,我满心欢喜的打开页面,却得到了如下的报错:

No application encryption key has been specified

具体查阅信息,需要输入如下命令:

php artisan key:generate

 输入了之后,网站报错还是一样,经查阅我得到了如下的博文:

WebStack-Laravel 和宝塔导航网站部署icon-default.png?t=MBR7https://blog.csdn.net/mp624183768/article/details/103412247这位老兄虽然使用的是宝塔部署网站,但是和我遇到的问题是一样的,我对php也不熟,他给的解决方案是这样的:

9、nano .env 修改配置参数(ftp方式 或者宝塔修改都可以)  appkey不用写 第10步骤会生成的

APP_NAME=WebStack
APP_ENV=local(这里如果正式运行,请修改为:production)
APP_KEY=
APP_DEBUG=true(如果安装没问题,建议改为false)
APP_LOG_LEVEL=debug
APP_URL=https://www.liuian.wiki(不懂如何https的这里可以先配置http )

#数据库信息
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=masaike
DB_USERNAME=masaike
DB_PASSWORD=masaike

10、通过php artisan key:generate  赋值key
11、通过php artisan migrate:refresh --seed迁移数据 (迁移数据的意思就是初始化数据库什么的 是要执行的~!)
————————————————
版权声明:本文为CSDN博主「安果移不动」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/mp624183768/article/details/103412247

 于是我运行了

php artisan key:generate 

获得了key,然后用vi改了.env文件,接着就使用了命令

# 清理缓存
php artisan cache:clear
# 迁移数据
php artisan migrate:refresh --seed

结束

于是,成功的打开了页面,目前还没有部署nginx,端口号会baolu就暂不提供链接了!放张图吧!!!

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/172876.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Arduino开发:网页控制ESP8266三色LED灯闪烁

根据板卡原理RGB三色LED对应引脚&#xff1a;int LEDR12、int LEDG14、int LEDB13;设置串口波特率为115200Serial.begin(115200);源代码如下所示&#xff1a;#include <ESP8266WiFi.h> // 提供 Wi-Fi 功能的库#include <ESP8266WebServer.h> // 提供网站服务器功能…

分布式共识算法随笔 —— 从 Quorum 到 Paxos

分布式共识算法随笔 —— 从 Quorum 到 Paxos 概览: 为什么需要共识算法&#xff1f; 昨夜西风凋碧树&#xff0c;独上高楼&#xff0c;望尽天涯路 复制(Replication) 是一种通过将同一份数据在复制在多个服务器上来提高系统可用性和扩展写吞吐的策略, 。常见的复制策略有主从…

Flink CDC 原理

文章目录CDC&#xff0c;Change Data Capture 变更数据捕获 目前CDC有两种实现方式&#xff0c;一种是主动查询、一种是事件接收。 主动查询&#xff1a; 相关开源产品有Sqoop、Kafka JDBC Source等。 用户通常会在数据原表中的某个字段中&#xff0c;保存上次更新的时间戳或…

一篇博客教会你写序列化工具

文章目录什么是序列化&#xff1f;序列化格式JSON序列化精简序列化数据总结源码什么是序列化&#xff1f; 总所周知&#xff0c;在Java语言中&#xff0c;所有的数据都是以对象的形式存在Java堆中。 但是Java对象如果要存储在别的地方&#xff0c;那么单纯的Java对象就无法满…

我靠steam/csgo道具搬运实现财富自由

和莘莘学子一样&#xff0c;本着毕业对未来的憧憬&#xff0c;规划着漫漫人生&#xff0c;可是被残酷的事实打败。 直到一次偶然的同学聚会&#xff0c;谈及了现如今的生活才发现一片新大陆&#xff0c;通过信息差去赚取收益。 记得之前在校期间常常和哥几个通宵干CSGO,直到这…

Elasticsearch7.8.0版本高级查询—— 完全匹配查询文档

目录一、初始化文档数据二、完全匹配查询文档2.1、概述2.2、示例一、初始化文档数据 在 Postman 中&#xff0c;向 ES 服务器发 POST 请求 &#xff1a;http://localhost:9200/user/_doc/1&#xff0c;请求体内容为&#xff1a; { "name":"zhangsan", &quo…

【Nginx】使用Docker完成Nginx负载均衡+动静分离

前提是需要配置Nginx的反向代理&#xff0c;可以我看之前的文章 上篇Nginx配置动态代理的文章&#xff0c;我们在tomcat里写了两个简单html 这次我们依然采取同样的思路来演示负载均衡 一、负载均衡 1.在两个Tomcat容器&#xff08;我这里一个端口8081&#xff0c;一个8082…

Gradle vs Maven 基本对比(一)

Gradle 与Maven 的基本对比 对比目录&#xff1a; 1、工具包目录对比 2、创建项目结构对比 3、启动进程对比 4、性能对比 5、简洁性对比 什么是gradle: Gradle 是一个开源的运行在JVM上自动化构建工具&#xff0c;专注于灵活性和性能。Gradle 使用 Groovy 或 Kotlin DSL(领…

低代码平台飞速创软完成3000万元A+轮融资

疫情形势下&#xff0c;云原生全场景低代码及数字化基础设施提供商珠海飞速创软科技有限公司&#xff08;以下简称&#xff1a;飞速创软&#xff09;依然发展迅速&#xff0c;逆势而上。继2021年中获得珠海正菱创投、炼金术资本等机构A轮数千万融资之后&#xff0c;于2022年底&…

【手写 Vue2.x 源码】第三十一篇 - diff算法-比对优化(下)

一&#xff0c;前言 上篇&#xff0c;diff算法-比对优化&#xff08;上&#xff09;&#xff0c;主要涉及以下几个点&#xff1a; 介绍了如何进行儿子节点比对&#xff1b;新老儿子节点可能存在的3种情况及代码实现&#xff1b;新老节点都有儿子时的 diff 方案介绍与处理逻辑…

墙裂推荐,2023年最强、最实用的IDEA插件推荐合集

插件目录Alibaba Java Coding Guidelines(阿里巴巴java开发规范)Alibaba Cloud AI Coding Assistant(阿里云AI代码助理)Code Glance3(代码地图)Codota AI Autocomplete for Java and JavaScriptCSDN Tools(CSDN官方插件)FindBugsGenerateAllSetter Postfix Completion (自动生成…

小程序uni-app的api

小程序uni-app的apiuni api简介uni api使用uni-app自定义组件—传统方式核心步骤uni-app自定义组件—easycom简介核心步骤uni-app组件库uViewUIuview介绍关键步骤uni api简介 uni-api 指的是uni-app 针对一些 微信小程序api所做的封装它解决了两个问题 原生的小程序api不支持…

C/C++const关键字详解(全网最全)

目录 1、const修饰普通变量 2、const修饰指针 &#xff08;1&#xff09;const修饰p: &#xff08;2&#xff09;const修饰*p&#xff1a; &#xff08;3&#xff09;const修饰p和*p 4、const修饰数组 5、const修饰函数形参 &#xff08;1&#xff09;const修饰普通形参…

【数据结构】6.4 图的存储结构

文章目录6.4.1 邻接矩阵&#xff08;数组&#xff09;表示法无向图的邻接矩阵无向图邻接矩阵的特点有向图的邻接矩阵有向图邻接矩阵的特点网&#xff08;有权图&#xff09;的邻接矩阵采用邻接矩阵创建无向网邻接矩阵的优缺点6.4.2 邻接表&#xff08;链式&#xff09;无向图的…

【人工智能原理自学】初识Keras:轻松完成神经网络模型搭建

&#x1f60a;你好&#xff0c;我是小航&#xff0c;一个正在变秃、变强的文艺倾年。 &#x1f514;笔记来自B站UP主Ele实验室的《小白也能听懂的人工智能原理》。 &#x1f514;本文讲解初识Keras&#xff1a;轻松完成神经网络模型搭建&#xff0c;一起卷起来叭&#xff01; 目…

Eureka入门

Eureka入门Eureka入门什么是Eureka构建项目demo服务拆分远程调用创建Pom聚合工程Eureka使用搭建注册中心注册服务远程调用出现的问题Eureka入门 什么是Eureka Eureka是SpringCloud提供的注册中心&#xff0c;用来解决微服务之间远程调用问题&#xff0c;如&#xff1a; 消费…

交通流的微观模型研究(Matlab代码实现)

&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜密&#xff0c;逻辑清晰&#xff0c;为了方便读者。 ⛳️座右铭&a…

Redis原理篇(四)内存回收

Redis之所以性能强&#xff0c;最主要原因是基于内存存储。但是单节点的Redis其内存大小不宜过大&#xff0c;会影响持久化或主从同步性能。 可以通过配置文件来设置最大内存 # maxmemory <bytes> maxmemory 1gb一、过期策略 可以通过expire命令给Redis的key设置TTL …

【C++算法图解专栏】一篇文章带你掌握高精度加减乘除运算

✍个人博客&#xff1a;https://blog.csdn.net/Newin2020?spm1011.2415.3001.5343 &#x1f4e3;专栏定位&#xff1a;为 0 基础刚入门数据结构与算法的小伙伴提供详细的讲解&#xff0c;也欢迎大佬们一起交流~ &#x1f4da;专栏地址&#xff1a;https://blog.csdn.net/Newin…

Java 异常 笔记

异常体系结构 异常分为Error和Exception。Error通常是灾难性错误&#xff0c;一般发生时&#xff0c;JVM选择终止程序执行&#xff1b;Exception通常可在程序中进行处理&#xff0c;尽量避免 Exception分支中有一个重要子类RuntimeException&#xff0c;运行时异常 ArrayInd…