V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
爱意满满的作品展示区。
imba97
V2EX  ›  分享创造

用 Nuxt 写了个简历并做了自动化

  •  
  •   imba97 ·
    imba97 · 143 天前 · 1898 次点击
    这是一个创建于 143 天前的主题,其中的信息可能已经有所发展或是发生改变。

    Nuxt

    接触 Nuxt 大概有一个多月了,对于一些小型网站,不需要前后端分离的,是个好的选择

    比如最近就做了一个 me.imba97.cn,准备放一些关于我的东西

    预览

    大概长这样

    image.png

    Docker

    除了这个简历,我把之前的 《写了个简单的页面,分享此时此刻在听的歌》 也迁过去了

    你可以访问 me.imba97.cn/playing 查看

    之前接口是用的 PHP,因为涉及到后端,需要 Node 环境,借助 GPT 简单写了个 Dockerfile

    FROM node:18
    
    # 创建并设置工作目录
    WORKDIR /usr/src/app
    
    # 复制所有源代码到工作目录
    COPY . .
    
    # 安装 pnpm
    RUN npm install -g pnpm
    
    # 安装项目依赖
    RUN pnpm install
    
    # 构建 Nuxt
    RUN pnpm run build
    
    # 暴露端口(默认端口为 3000 ,可以通过环境变量 NUXT_PORT 配置)
    ENV NUXT_PORT=3000
    EXPOSE ${NUXT_PORT}
    
    # 启动 Nuxt.js 应用程序
    CMD [ "pnpm", "start-docker" ]
    

    start-docker 是以下命令

    nuxt start --hostname 0.0.0.0 --port $NUXT_PORT
    

    Github Actions

    配置了自动打包 Docker 镜像并发布

    name: Build and Push Docker Image
    
    on:
      push:
        tags:
          - 'v*'
    
    jobs:
      build:
        runs-on: ubuntu-latest
    
        steps:
          - name: Checkout repository
            uses: actions/checkout@v2
    
          - name: Set up Node.js
            uses: actions/setup-node@v2
            with:
              node-version: '18'
    
          - name: Install dependencies
            run: npm install
    
          - name: Build the project
            run: npm run build
    
          - name: Log in to Docker Hub
            uses: docker/login-action@v2
            with:
              username: ${{ secrets.DOCKER_USERNAME }}
              password: ${{ secrets.DOCKER_PASSWORD }}
    
          - name: Build and tag Docker image
            run: |
              TAG_NAME=$(echo $GITHUB_REF | sed 's/refs\/tags\///')
              docker build . -t ${{ secrets.DOCKER_USERNAME }}/me:latest
              docker tag ${{ secrets.DOCKER_USERNAME }}/me:latest ${{ secrets.DOCKER_USERNAME }}/me:$TAG_NAME
    
          - name: Push Docker image to Docker Hub
            run: |
              TAG_NAME=$(echo $GITHUB_REF | sed 's/refs\/tags\///')
              docker push ${{ secrets.DOCKER_USERNAME }}/me:latest
              docker push ${{ secrets.DOCKER_USERNAME }}/me:$TAG_NAME
    

    部署脚本

    我是部署在家里路由器上的,为了方便又简单写了个脚本

    #!/bin/sh
    
    docker stop imba97-me
    docker rm imba97-me
    
    docker pull imba97/me:latest
    
    docker run -d --name imba97-me -p 3000:3000 --restart always imba97/me:latest
    

    开源

    有兴趣可以看一下 Github: imba97/me

    其他

    虽然之前看到过有自动更新容器的方法,不过目前先这样了

    Nuxt Docker 镜像倒是也有不少,但还是想自己搞一个单独的

    我目前在积极寻找远程全职工作,有兴趣可以联系我,谢谢

    目前尚无回复
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2765 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 20ms · UTC 08:39 · PVG 16:39 · LAX 00:39 · JFK 03:39
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.