V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
爱意满满的作品展示区。
imba97

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

  •  
  •   imba97 ·
    imba97 · Aug 1, 2024 · 2546 views
    This topic created in 638 days ago, the information mentioned may be changed or developed.

    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 镜像倒是也有不少,但还是想自己搞一个单独的

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

    No Comments Yet
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   2139 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 30ms · UTC 00:49 · PVG 08:49 · LAX 17:49 · JFK 20:49
    ♥ Do have faith in what you're doing.