和ChatGPT关于Swing music的一场对话(上篇)

在这里插入图片描述

什么是 Swing Music ?

Swing Music 是一款漂亮的自托管音乐播放器,适用于您的本地音频文件。就像一个更酷的 Spotify …但带上你自己的音乐。

第一次在 reddit 上看到 Swing Music,就被其 UI 吸引了

在这里插入图片描述

但源码站点的releases 中只有 windowslinux 的版本

在这里插入图片描述

老苏不是程序员,但作为一个爱折腾的人,岂能轻易放弃,何不借助最近火的一塌糊涂的 ChatGPT,让其协助完成 Docker 版呢?于是就有了下面👇的一场对话

与 ChatGPT 的对话

以下只记录了对话的要点,不是事无巨细的完整记录。整个对话断断续续进行了 2天,其中包含了老苏查资料、编译、测试的时间

服务端

首先当然是看官方的安装手册了

在这里插入图片描述

说实话没看懂,虽然之前折腾过 python 的项目,但是 poetry 是什么鬼?

于是老苏向 ChatGPT 提了第一个问题


  • Q:如何将下面这段命令改编为 Dockerfile
git clone https://github.com/geoffrey45/swingmusic.gitcd swingmusic# install dependencies using poetry
poetry install# start the app
poetry run python manage.py

ChatGPT 很快就做出了响应,看起来是不是头头是道的?不仅给了代码,还有详细的解释


  • A:将上述命令编写为 Dockerfile 的步骤如下:
  1. 创建一个名为 Dockerfile 的文件,将以下内容复制到文件中:
FROM python:3.8-slim-buster# 更换国内源
RUN sed -i s@/archive.ubuntu.com/@/mirrors.aliyun.com/@g /etc/apt/sources.list
RUN sed -i s@/security.ubuntu.com/@/mirrors.aliyun.com/@g /etc/apt/sources.list
RUN  apt-get clean# 安装 Git 和 Poetry
RUN apt-get update && \apt-get install -y git && \curl -sSL https://raw.githubusercontent.com/python-poetry/poetry/master/get-poetry.py | python# 下载代码
RUN git clone https://github.com/geoffrey45/swingmusic.git /app# 安装依赖
WORKDIR /app
RUN poetry install --no-dev# 启动应用
CMD ["poetry", "run", "python", "manage.py"]

Dockerfile 基于 Python 3.8 官方镜像构建,安装了 GitPoetry,从 GitHub 上下载了 geoffrey45/swingmusic 项目的代码,安装了项目依赖,并在容器启动时启动了应用程序。

  1. 在命令行中进入包含 Dockerfile 文件的目录,并执行以下命令构建 Docker 镜像:

    docker build -t my-swingmusic-app .

    其中,my-swingmusic-app 是您为该 Docker 镜像指定的名称。

  2. 构建完成后,可以使用以下命令启动 Docker 容器:

    docker run --name my-swingmusic-container my-swingmusic-app

    其中,my-swingmusic-container 是您为该 Docker 容器指定的名称。

希望这些步骤能够帮助您将上述命令编写为 Dockerfile,并成功构建和运行 Docker 容器。


接来下老苏让 ChatGPT 改了阿里源、 python 的版本,同时根据编译的情况做了修正,最后得到了可以编译过的服务端的 Dockerfile 文件

FROM python:3.11-slim-buster  # 改阿里源  
RUN sed -i "s@http://deb.debian.org@http://mirrors.aliyun.com@g" /etc/apt/sources.list  
RUN cat /etc/apt/sources.list  
RUN rm -Rf /var/lib/apt/lists/*# 安装 Git 和 Poetry  
RUN apt-get update && \  apt-get install -y git curlRUN curl -sSL https://raw.githubusercontent.com/python-poetry/poetry/master/install-poetry.py | python -  
ENV PATH /root/.local/bin:$PATH  # 下载代码  
RUN git clone https://ghproxy.com/github.com/geoffrey45/swingmusic.git /app  # 安装依赖  
WORKDIR /app  
#RUN pip install pyinstaller && \  
RUN pip install --upgrade pip && \  poetry installEXPOSE 1970
# 启动应用  
CMD ["poetry", "run", "python", "manage.py"]

客户端

如法炮制,让 ChatGPT 将客户端的安装过程转为 Dockerfile 文件

在这里插入图片描述


  • Q:如何将下面这段命令改编为 Dockerfile
git clone https://github.com/geoffrey45/swing-client.gitcd swing-client# Install dependencies
yarn install# Start the development server
yarn dev# Build the project
yarn build

ChatGPT 同样很快就有了回应


  • A:以下是将这段命令编写成 Dockerfile 的示例:
FROM node:latestRUN apt-get update && apt-get install -y gitRUN git clone https://github.com/geoffrey45/swing-client.git /appWORKDIR /appRUN yarn installRUN yarn buildEXPOSE 3000CMD ["yarn", "start"]

在该 Dockerfile 中,我们使用了 Node.js 的官方镜像作为基础镜像,并安装了 Git 。接着,我们克隆了 Swing 客户端的代码并将其复制到 Docker 容器中的 /app目录下。然后,我们在 /app 目录中运行了 yarn installyarn build 命令来安装依赖和构建项目。最后,我们暴露了容器的 3000 端口并在容器启动时运行了 yarn start 命令。


接下来,老苏要求改为多阶段,采用阿里的源等多次反复之后,得到了下面的 Dockerfile

# 第一阶段:构建应用
FROM node:latest as builderRUN apt-get update && apt-get install -y git# 设置淘宝镜像源
RUN npm config set registry https://registry.npm.taobao.org/RUN git clone https://github.com/geoffrey45/swing-client.git /appWORKDIR /appRUN yarn installRUN yarn build# 第二阶段:运行应用
FROM node:latest# 设置淘宝镜像源
RUN npm config set registry https://registry.npm.taobao.org/COPY --from=builder /app /appWORKDIR /appEXPOSE 3000CMD ["yarn", "start"]

构建镜像

如果你不想自己构建,可以跳过,直接阅读下一章节

在这个项目中,老苏还是有贡献的 😂 ,对 ChatGPT 给的代码进行了融合、编译和调试,最终的 Dockerfile 是下面这样的

#前端构建    
FROM node:latest as builder    # 改阿里源      
RUN sed -i "s@http://deb.debian.org@http://mirrors.aliyun.com@g" /etc/apt/sources.list    
RUN cat /etc/apt/sources.list      
RUN rm -Rf /var/lib/apt/lists/*    # 安装 Git    
RUN apt-get update && \    apt-get install -y git    # 设置yarn镜像为国内镜像    
RUN yarn config set registry https://registry.npm.taobao.org --global && \    yarn config set disturl https://npm.taobao.org/dist --global    # 下载客户端代码    
RUN git clone https://github.com/geoffrey45/swing-client.git /app    # 删除 yarn.lock,否则改源没有用    
RUN rm -Rf /app/yarn.lock    # 安装依赖     
WORKDIR /app    
RUN yarn install && \    yarn build    # 后端构建    
FROM python:3.11-slim-buster     
MAINTAINER laosu<wbsu2003@gmail.com> # 改阿里源  
RUN sed -i "s@http://deb.debian.org@http://mirrors.aliyun.com@g" /etc/apt/sources.list      
RUN cat /etc/apt/sources.list      
RUN rm -Rf /var/lib/apt/lists/*    # 安装 Git 和 Poetry      
RUN apt-get update && \      apt-get install -y git curl    RUN curl -sSL https://raw.githubusercontent.com/python-poetry/poetry/master/install-poetry.py | python -      
ENV PATH /root/.local/bin:$PATH      # 下载服务端代码      
RUN git clone https://github.com/geoffrey45/swingmusic.git /app  # 复制前端    
COPY --from=builder /app/dist/. /app/client/.    # 安装依赖      
WORKDIR /app      
#RUN pip install pyinstaller && \      
RUN pip install --upgrade pip && \      poetry install    EXPOSE 1970    
ENV XDG_CONFIG_HOME=/data  # 替换 localhost 为 0.0.0.0,否则容器外无法访问  
RUN sed -i "s@localhost@0.0.0.0@g" /app/app/settings.py  # 启动应用      
CMD ["poetry", "run", "python", "manage.py"]

构建镜像和容器运行的基本命令如下👇

# 新建目录
mkdir swingmusic# 进入目录
cd swingmusic# 创建 Dockerfile 文件
touch Dockerfile# 构建镜像  
docker build -t wbsu2003/swingmusic:v1 .  # 运行容器  
docker run -d \--name swingmusic \-p 1970:1970 \-v $(pwd)/data:/data \-v $(pwd)/music:/music \wbsu2003/swingmusic:v1

下篇进入 Swing Music 的安装、使用环节,咱们周三不见不散。

参考文档

swing-opensource/swingmusic: Swing Music is a beautiful, self-hosted music player for your local audio files. Like a cooler Spotify … but bring your own music.
地址:https://github.com/swing-opensource/swingmusic

swing-opensource/swingmusic-client: Browser-based client for the swing music player: (https://github.com/swing-opensource/swingmusic). Powered by VueJS, Typescript, Pinia and Axios
地址:https://github.com/swing-opensource/swingmusic-client

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

chatgpt赋能python:Python怎么搜索文献

Python怎么搜索文献 Python 是一种流行的编程语言&#xff0c;因其便捷易用、拥有丰富的自然语言处理工具、以及大量可靠的第三方包而闻名。Python不仅在数据分析、机器学习和Web开发等领域都具有广泛的应用&#xff0c;而且也在学术界和研究领域受到欢迎。本文将告诉你Python…

chatgpt赋能python:Introduction

Introduction 在机器学习中&#xff0c;模型的训练是非常重要的步骤之一。模型训练意味着为数据拟合合适的参数&#xff0c;以便能够准确地预测未来的值。Python是一种功能强大的编程语言&#xff0c;提供许多库和框架来训练机器学习模型。在本文中&#xff0c;我们将探讨如何…

ChatGPT 更新:大杀器!函数调用示范

自ChatGPT 3.5/4 双双升级&#xff1a;更长&#xff0c;更便宜&#xff0c;更开放&#xff0c;更可控发出去之后&#xff0c;有朋友问怎么接入 API。‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍ 什么是函数调用&#xff1f; 函数调用指 Chat-GPT 模型会自动逻辑判断后&#xff0c;调用在代…

OpenAI 突然发布了一个 ChatGPT 的大更新

2023.06.14 凌晨&#xff0c;OpenAI 突然发布了一个 ChatGPT 的大更新。我关注的更新内容是&#xff1a;在 Chat Completions API 新增函数调用&#xff08;Function call&#xff09;功能 什么是函数调用&#xff1f; 开发者现在可以向 GPT 模型描述函数&#xff0c;并让模型…

MidJourney使用教程:二 初识Prompts

最近AIGC这么火&#xff0c;除了chatGPT以外&#xff0c;这种图像类的产品也是非常有意思&#xff0c;其中就有MidJourney和Stable Diffusion这俩个比较出圈。这里我先选择MidJourney来体验并整理出一个教程。一方面MidJourney最简单&#xff0c;能当路Discord&#xff0c;注册…

android 微信分享出去的图片不显示或显示成应用图标

第一次写博客&#xff0c;写得可能比较烂&#xff0c;大家见谅。 今天测试给提了个问题&#xff0c;先上一下出现的问题&#xff0c;自己分享后微信里面显示出来的界面&#xff08;正常&#xff09; 但是分享出去后&#xff0c;其他人看到要不就不显示图片要不就是显示应用的lo…

Qt 设置软件图标

文章目录 前言一、设计图标文件二、修改代码文件 1.方法一2.方法二三、生成可执行程序 前言 程序发布通常会配有设计的独特的图标。这里介绍一下在 windows上设置Qt应用程序图标的方法。 一、设计图标文件 图标文件支持多种格式。其中.ico与.png应用较多。创建.ico/png文件&am…

u-modal不能控制显示隐藏 icon图标不显示引入问题

Modal 对话框 使用了 v-model 控制对话框显示&#xff0c;但是在真实使用的使用&#xff0c;发现这个 值 改变了 true 之后&#xff0c;对话框仍然不显示 <u-modal v-model"showModal" width534rpx confirm-text保存 cancel-text不保存 :show-cancel-buttontrue …

chatgpt如何接入本地知识库?我们来看看EMNLP 2022 INFO是如何融入本地知识的

一、概述 title&#xff1a;You Truly Understand What I Need : Intellectual and Friendly Dialogue Agents grounding Knowledge and Persona 论文地址&#xff1a;You Truly Understand What I Need : Intellectual and Friendly Dialog Agents grounding Persona and Know…

唯一客服系统源码独立部署版+前端VUE开源+客服uniapp源码+ChatGPT知识库安装配置详细教程...

唯一客服系统是一款基于Golang Gin框架开发的在线客服系统&#xff0c;可以提供独立部署版&#xff0c;程序数据全部私有安装在自己服务器。访客咨询界面自适应响应式设计&#xff0c;完全可以适配于PC网站、移动端、APP内嵌等场景下。客服端提供PC后台管理&#xff0c;实时收到…

微软学生开发者峰会参加体验

#微软学生开发者峰会# #开源# #创业# 本次微软学生开发者峰会于2022年10月14日上午9:30在上海召开&#xff0c;线上线下均可参加。 峰会围绕技术、学术、开源、创业四大主题&#xff0c;帮助开发者认识各专业、行业领域那些熠熠闪光的同路人或先行者&#xff0c;感受那些伴随…

未来的两马之争,马化腾如何才能打赢马云?

论身高&#xff0c;马云目测165左右&#xff0c;马化腾173以上&#xff0c;两者差距接近10cm。 论年龄&#xff0c;马化腾出生于1971年&#xff0c;今年47岁&#xff0c;马云出生于1964年&#xff0c;今年54岁&#xff0c;不管身高和年龄&#xff0c;真打起来马云都没有优势啊。…

【每日新闻】马云:腾讯是阿里巴巴发展中的一个伴侣

点击蓝字关注我们 更多精彩&#xff0c;请点击上方蓝字关注我们&#xff01; 每日新闻播报 第04-23期 1 趋势洞察 马云&#xff1a;腾讯是阿里巴巴发展中的一个伴侣 中国企业家俱乐部主席、阿里巴巴集团董事局主席马云表示&#xff0c;今天其实我们社会问题很多&#xff0c;挑战…

快半步是天才,快一步是疯子,马云14年前错失一个“微信”?

作者丨电商君 来源丨电商报&#xff08;ID&#xff1a;kandianshang&#xff09;中国电商影响力媒体&#xff01; 马云14年前错失一个“微信”&#xff1f; 如今的阿里巴巴&#xff0c;在全球范围里都是航母级的超级国际公司&#xff0c;但是如果要说阿里巴巴还有那么一点遗憾的…

孙正义与马云的故事:马云就是他心目中的那个人

阿里巴巴集团IPO&#xff0c;大家都说孙正义是最大赢家。在我看来&#xff0c;孙正义既是赢家&#xff0c;也是输家。 孙正义是赢家很好理解&#xff0c;阿里集团IPO&#xff0c;孙正义赚得最多。 关于孙正义与马云的故事&#xff0c;故事的开始是这样的&#xff1a;1999年10月…

他是马云最敬佩的人,白手起家,28岁已经成为世界名人

互联网是一个创造奇迹的地方&#xff0c;这位年轻的世界名人来自中国广东&#xff0c;他是农村穷小子出身&#xff0c;没背景没学历&#xff0c;白手起家&#xff0c;如今是马云最敬佩的人&#xff0c;28岁的郭盛华已经是世界互联网响当当的人物了&#xff0c;他是东方联盟的CE…

心理学博士做了阿里巴巴首席技术官并且给马云赚了5000亿

编 辑&#xff1a;钟灵 来 源&#xff1a;正和岛&#xff08;ID&#xff1a;zhenghedao&#xff09; 那个“骗”走马云10个亿&#xff0c;被阿里同事指着鼻子让他滚蛋的人&#xff0c;后来怎么样了&#xff1f; 后来&#xff0c;他成为阿里巴巴集团首席技术官&#xff0c;而且被…

马云对话马斯克(全文):要警惕AI?该移民火星?如何更长寿?马化腾反对产业割裂和技术脱钩...

来源&#xff1a;未来论坛 今天&#xff08;8月29日&#xff09;&#xff0c;2019年世界人工智能大会在上海召开&#xff0c;500余位国内外顶尖高校、行业领军企业、国际组织的重要嘉宾&#xff0c;全球AI知名企业领袖齐聚于此。本次大会以“智联世界&#xff0c;无限可能”为主…

马云与马化腾的疫情对决:一场“文科生”与“理工男”的较量

作者 | 良叔 来源 | 良大师&#xff08;ID:liang_da_shi) 疫情发生后&#xff0c;各大公司和企业家在危难中&#xff0c;积极援助&#xff1a; 万达捐款1000万&#xff0c;免除租金超40亿元&#xff0c;保障就业岗位136万个&#xff1b; 华为捐款3000万&#xff0c;还为火神山…