如何在 Ubuntu 22.04 上通过 Docker Compose 安装 Laravel 网络应用

2024-04-11 渥太华微生活

19a93700-438a-11eb-9de5-d50a874fd362.png

如何在 Ubuntu 22.04 上通过 Docker Compose 安装 Laravel 网络应用 (How To Install and Set Up Laravel with Docker Compose on Ubuntu 22.04)


简介

应用程序容器化 (containerize an application) 是指调整应用程序及其组件,以便能够在轻量级环境例如容器中运行它的过程。此类环境是隔离的且一次性的,可用于开发、测试应用程序并将其部署到生产环境。

在本文中,我们将使用 Docker Compose 容器化 Laravel 应用程序以进行开发。完成后,您将拥有一个Laravel 应用程序,在三个独立的服务容器上运行:

  • 运行 PHP8.2-FPM 的应用服务 (app service);

  • 运行 MySQL 8.0 的数据库服务 (db service);

  • 一个 nginx 服务 (nginx service),在将 Laravel 应用程序提供给最终用户之前,使用应用服务 (app service) 解析 PHP 代码。

为了简化开发过程并促进应用程序调试,我们将使用共享卷 (shared volumes) 保持应用程序文件同步。我们还将了解如何使用 docker-compose exec 命令在应用程序容器上运行 Composer 和 Artisan。

1c0dfc80-1def-11eb-9e5c-641da3e3c9b4.png


前提条件

  • Ubuntu 22.04 本地计算机或网络服务器,需要有 sudo 权限的非 root 用户 。

  • 在您的服务器上安装了 Docker。

  • 在您的服务器上安装了 Docker Compose。

0_D19o4FwVIeJaQX8f.jpg


第一步:下载演示应用程序

1、创建整个应用的文件夹,并进入该目录。

mkdir laravel-docker-compose-demo
cd laravel-docker-compose-demo

2、通过 Composer 的 create-project 命令创建一个新的 Laravel 项目。

composer create-project laravel/laravel src

3、导航到应用程序源代码目录。

cd src

1_eKrABZ5AHVzUiU07hsMKjw.jpg

第二步:设置应用程序的 .env 文件

Laravel 配置文件位于应用程序根目录内名为 config 的目录中。此外,.env 文件用于设置依赖于环境的配置,例如身份验证信息和部署之间可能有所不同的任何信息。

.env 文件中包含的值将优先于位于 config 目录的常规配置文件中设置的值。

使用 nano 或您选择的文本编辑器打开此文件:

nano .env

当前 .env 文件包含使用本地 MySQL 数据库的设置,其中 127.0.0.1 作为数据库主机。我们需要更新 DB_HOST 变量,以便它指向我们将在 Docker 环境中创建的数据库服务。在文中,我们将数据库服务称为 db。继续将列出的 DB_HOST 值替换为数据库服务名称:

APP_NAME=Laravel
APP_ENV=dev
APP_KEY=
APP_DEBUG=true
APP_URL=http://localhost:8000

LOG_CHANNEL=stack

DB_CONNECTION=mysql
DB_HOST=db
DB_PORT=3306
DB_DATABASE=laravel
DB_USERNAME=laravel_user
DB_PASSWORD=password

如果您愿意,也可以随意更改数据库名称、用户名和密码。这些变量将在稍后的步骤中使用,我们将设置 docker-compose.yml 文件来配置我们的服务。


1691664268830.png

第三步:设置应用程序的 Dockerfile

虽然 MySQL 和 Nginx 服务都将基于从 Docker Hub 获取的默认镜像,但我们仍然需要为应用程序容器构建自定义镜像。我们将为此创建一个新的 Dockerfile。

我们的应用镜像将基于来自 Docker Hub 的 php:8.2-fpm 官方 PHP 镜像。在 PHP-FPM 环境之上,我们将安装一些额外的 PHP 模块和 Composer 依赖管理工具。

我们还将创建一个新的系统用户,这是在开发应用程序时执行 artisan 和 composer 命令所必需的。uid 设置可确保容器内的用户与运行 Docker 的主机上的系统用户具有相同的 uid。这样,由这些命令创建的任何文件都会以正确的权限复制到主机中。

使用以下命令创建新的 Dockerfile:

nano Dockerfile

将以下内容复制到您的 Dockerfile 中:

FROM php:8.2-fpm

# Arguments defined in docker-compose.yml
ARG user
ARG uid

# Install system dependencies
RUN apt-get update && apt-get install -y \
    git \
    curl \
    libpng-dev \
    libonig-dev \
    libxml2-dev \
    zip \
    unzip

# Clear cache
RUN apt-get clean && rm -rf /var/lib/apt/lists/*

# Install PHP extensions
RUN docker-php-ext-install pdo_mysql mbstring exif pcntl bcmath gd

# Get latest Composer
COPY --from=composer:latest /usr/bin/composer /usr/bin/composer

# Create system user to run Composer and Artisan Commands
RUN useradd -G www-data,root -u $uid -d /home/$user $user
RUN mkdir -p /home/$user/.composer && \
    chown -R $user:$user /home/$user

# Set working directory
WORKDIR /var/www

USER $user

我们的 Dockerfile 首先定义基础镜像:php:8.2-fpm。

安装系统包和 PHP 扩展后,我们通过将 Composer 可执行文件从最新的官方镜像复制到我们自己的应用程序映像来安装 Composer。

然后使用在 Dockerfile 开头声明的 user 和 uid 参数创建并设置一个新的系统用户,这些值将由 Docker Compose 在构建时注入。

最后,我们将默认工作目录设置为 /var/www 并更改为新创建的用户。这将确保您在应用程序容器上运行 Composer 和 Artisan 命令时以普通用户身份进行连接,并且位于正确的目录中。


How-To-Setup-Nginx-Container-Using-Docker-01.png

第四步:配置 Nginx

使用 Docker Compose 创建开发环境时,通常需要与服务容器共享配置或初始化文件,以便设置或引导这些服务。

为了设置 Nginx,我们将共享一个 laraveldemo.conf 文件,该文件将配置应用程序的服务方式。

使用以下命令创建 docker-compose/nginx 文件夹:

mkdir -p docker-compose/nginx

在该目录中打开一个名为 laraveldemo.conf 的新文件:

nano docker-compose/nginx/laraveldemo.conf

将以下 Nginx 配置复制到该文件:

server {
    listen 80;
    index index.php index.html;
    error_log  /var/log/nginx/error.log;
    access_log /var/log/nginx/access.log;
    root /var/www/public;
    location ~ \.php$ {
        try_files $uri =404;
        fastcgi_split_path_info ^(.+\.php)(/.+)$;
        fastcgi_pass app:9000;
        fastcgi_index index.php;
        include fastcgi_params;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        fastcgi_param PATH_INFO $fastcgi_path_info;
    }
    location / {
        try_files $uri $uri/ /index.php?$query_string;
        gzip_static on;
    }
}

该文件将配置 Nginx 监听端口 80,并使用 index.php 作为默认索引页面。它将文档根目录设置为 /var/www/public,然后配置 Nginx 使用端口 9000 上的应用程序服务来处理 *.php 文件。


article-header-d92d5dfa.jpg

第五步:使用 Docker Compose 创建多容器环境

Docker Compose 使您能够在 Docker 上运行多容器环境,它使用服务定义来构建具有多个可以共享网络和数据卷的容器的完全可定制的环境。

我们将创建一个名为 docker-compose.yml 的新文件。通常,此文件位于应用程序文件夹的根目录,它定义您的容器化环境,包括您将用于构建容器的基础映像以及您的服务如何交互。

我们将在 docker-compose.yml 文件中定义三个不同的服务:app、db 和 nginx。

该应用程序服务 (app service) 将基于我们之前创建的 Dockerfile 构建一个名为 travellist 的镜像。该服务定义的容器将运行 php-fpm 服务器来解析 PHP 代码并将结果发送回 nginx 服务,该服务将在单独的容器上运行。mysql 服务定义了一个运行 MySQL 8.0 服务器的容器。我们的服务将共享一个名为 travellist 的桥接网络。

应用程序文件将通过绑定挂载在应用程序和 nginx 服务上同步。绑定挂载在开发环境中非常有用,因为它们允许在主机和容器之间实现高性能的双向同步。

在应用程序文件夹的根目录下,创建一个新的 docker-compose.yml 文件:

nano docker-compose.yml

典型的 docker-compose.yml 文件以版本定义开头,后跟服务节点,在该节点下定义了所有服务。共享网络通常在该文件的底部定义。

首先,将此样板代码复制到您的 docker-compose.yml 文件中:

version: "3.7"
services:


networks:
  laraveldemo:
    driver: bridge

我们现在将编辑服务节点以包含应用程序、数据库和 nginx 服务。

1、应用程序服务 (app service)

应用服务将设置一个名为 travellist-app 的容器。它基于与 docker-compose.yml 文件位于同一路径的 Dockerfile 构建新的 Docker 镜像。

尽管用作应用程序的文档根目录位于 nginx 容器中,但我们也需要应用程序文件位于应用程序容器内的某个位置,因此我们能够使用 Laravel Artisan 工具执行命令行任务。

将以下服务定义复制到服务节点下的 docker-compose.yml 文件内:

  app:
    build:
      args:
        user:sammy
        uid:1000
        context: ./
      dockerfile: Dockerfile
    image: laraveldemo
    container_name: laraveldemo-app
    restart: unless-stopped
    working_dir: /var/www/
    volumes:
      -./:/var/www
    networks:
      -laraveldemo

这些设置执行以下操作:

  • build:此配置告诉 Docker Compose 使用指定的路径(上下文)和 Dockerfile 来为应用程序服务构建本地镜像。参数 user 和 uid 被注入到 Dockerfile 中,用以在构建时自定义用户创建命令。

  • image:将用于正在构建的镜像的名称。

  • container_name:设置此服务的容器名称。

  • restart:总是重新启动,除非服务停止。

  • working_dir (工作目录):将此服务的默认目录设置为 /var/www。

  • volumes:创建一个共享卷,它将当前目录中的内容同步到容器内的 /var/www 。

  • networks (网络):设置此服务以使用名为 Travellist 的网络。

2、数据库服务 (db service)

db 服务使用 Docker Hub 中预构建的 MySQL 8.0 映像。由于 Docker Compose 会自动加载与 docker-compose.yml 文件位于同一目录中的 .env 变量文件,因此我们可以从上一步中创建的 Laravel .env 文件中获取数据库配置。

将以下服务定义包含在您的服务节点中,位于应用程序服务之后:

  db:
    image:mysql:8.0
    container_name: laraveldemo-db
    restart: unless-stopped
    environment:
      MYSQL_DATABASE:${DB_DATABASE}
      MYSQL_ROOT_PASSWORD:${DB_PASSWORD}
      MYSQL_PASSWORD:${DB_PASSWORD}
      MYSQL_USER:${DB_USERNAME}
      SERVICE_TAGS: dev
      SERVICE_NAME: mysql
    volumes:
      -./docker-compose/mysql:/docker-entrypoint-initdb.d
    networks:
      - laraveldemo

这些设置执行以下操作:

  • image:定义该容器应使用的 Docker 镜像。在本例中,我们使用 Docker Hub 中的 MySQL 8.0 镜像。

  • container_name:设置此服务的容器名称:travellist-db。

  • restart (重新启动):始终重新启动此服务,除非明确停止它。

  • environment (环境):定义新容器中的环境变量。我们使用从 Laravel .env 文件获取的值来设置 MySQL 服务,该服务将根据提供的环境变量自动创建新的数据库和用户。

  • volumes (卷):创建一个卷来共享将用于初始化应用程序数据库的 .sql 数据库转储。MySQL 镜像将自动导入容器内 /docker-entrypoint-initdb.d 目录中的 .sql 文件。

  • networks (网络):设置此服务以使用名为 travellist 的网络。

3、nginx 服务 (nginx service)

nginx 服务使用在轻量级 Linux 发行版 Alpine 之上预构建的 Nginx 映像。它创建一个名为 travellist-nginx 的容器,并使用端口定义创建从主机系统上的端口 8000 到容器内的端口 80 的重定向。

在服务节点中的数据库服务之后包含以下服务定义:

  nginx:
    image:nginx:1.17-alpine
    container_name: laraveldemo-nginx
    restart: unless-stopped
    ports:
      -8000:80
    volumes:
      -./:/var/www
      -./docker-compose/nginx:/etc/nginx/conf.d
    networks:
      - laraveldemo

这些设置执行以下操作:

  • image:定义该容器应使用的 Docker 镜像。在本例中,我们使用 Alpine Nginx 1.17 镜像。

  • container_name:设置此服务的容器名称:travellist-nginx。

  • restart (重新启动):始终重新启动此服务,除非明确停止它。

  • ports:设置端口重定向,允许通过外部端口 8000 访问容器内端口 80 上运行的 Web 服务器。

  • volumes (卷):创建两个共享卷。第一个卷会将当前目录的内容同步到容器内的 /var/www 。这样,当您对应用程序文件进行本地更改时,它们将快速反映在容器内由 Nginx 提供服务的应用程序中。第二个卷将确保我们的 Nginx 配置文件(位于 docker-compose/nginx/travellist.conf)被复制到容器的 Nginx 配置文件夹中。

  • networks (网络):设置此服务以使用名为 Travellist 的网络。

4、完成 docker-compose.yml 文件

这就是我们完成的 docker-compose.yml 文件的样子:

version: "3.7"
services:
  app:
    build:
      args:
        user: sammy
        uid: 1000
      context: ./
      dockerfile: Dockerfile
    image: laraveldemo
    container_name: laraveldemo-app
    restart: unless-stopped
    working_dir: /var/www/
    volumes:
      - ./:/var/www
    networks:
      - laraveldemo
  db:
    image: mysql:8.0
    container_name: laraveldemo-db
    restart: unless-stopped
    environment:
      MYSQL_DATABASE: ${DB_DATABASE}
      MYSQL_ROOT_PASSWORD: ${DB_PASSWORD}
      MYSQL_PASSWORD: ${DB_PASSWORD}
      MYSQL_USER: ${DB_USERNAME}
      SERVICE_TAGS: dev
      SERVICE_NAME: mysql
    volumes:
      - ./docker-compose/mysql:/docker-entrypoint-initdb.d
    networks:
      - laraveldemo
  nginx:
    image: nginx:alpine
    container_name: laraveldemo-nginx
    restart: unless-stopped
    ports:
      - 8000:80
    volumes:
      - ./:/var/www
      - ./docker-compose/nginx:/etc/nginx/conf.d/
    networks:
      - laraveldemo

networks:
  laraveldemo:
    driver: bridge

docker-cli-new-share.png

第六步:使用 Docker Compose 运行应用程序

我们将使用 docker-compose 命令来构建应用程序镜像,并运行我们在设置中指定的服务。

使用以下命令构建应用程序映像:

docker-compose build app

此命令可能需要几分钟才能完成。 您将看到与此类似的输出:

Output
Building app
Sending build context to Docker daemon  377.3kB
Step 1/11 : FROM php:7.4-fpm
 ---> 8c08d993542f
Step 2/11 : ARG user
 ---> e3ce3af04d87
Step 3/11 : ARG uid
 ---> 30cb921ef7df
Step 4/11 : RUN apt-get update && apt-get install -y     git     curl     libpng-dev     libonig-dev     libxml2-dev     zip     unzip
. . .
 ---> b6dbc7a02e95
Step 5/11 : RUN apt-get clean && rm -rf /var/lib/apt/lists/*
 ---> 10ef9dde45ad
. . .
Step 6/11 : RUN docker-php-ext-install pdo_mysql mbstring exif pcntl bcmath gd
. . .
 ---> 920e4f09ec75
Step 7/11 : COPY --from=composer:latest /usr/bin/composer /usr/bin/composer
 ---> dbbcd44e44af
Step 8/11 : RUN useradd -G www-data,root -u $uid -d /home/$user $user
 ---> db98e899a69a
Step 9/11 : RUN mkdir -p /home/$user/.composer &&     chown -R $user:$user /home/$user
 ---> 5119e26ebfea
Step 10/11 : WORKDIR /var/www
 ---> 699c491611c0
Step 11/11 : USER $user
 ---> cf250fe8f1af
Successfully built cf250fe8f1af
Successfully tagged travellist:latest

构建完成后,您可以使用以下命令在后台模式下运行环境:

docker-compose up -d
Output
Creating laraveldemo-db    ... done
Creating laraveldemo-app   ... done
Creating laraveldemo-nginx ... done

这将在后台运行您的容器。要显示有关活动服务状态的信息,请运行:

docker-compose ps

你会看到这样的输出:

OutputName                    Command              State                  Ports                
-----------------------------------------------------------------------------------------------
laraveldemo-app     docker-php-entrypoint php-fpm   Up      9000/tcp                            
laraveldemo-db      docker-entrypoint.sh mysqld     Up      3306/tcp, 33060/tcp                 
laraveldemo-nginx   nginx -g daemon off;            Up      0.0.0.0:8000->80/tcp,:::8000->80/tcp

您的环境现已启动并正在运行,但我们仍然需要执行几个命令来完成应用程序的设置。您可以使用 docker-compose exec 命令在服务容器中执行命令,例如 ls -l 来显示应用程序目录中文件的详细信息:

docker-compose exec app ls -l
Output
total 256
-rw-r--r-- 1 sammy sammy    737 Apr 18 14:21 Dockerfile
-rw-r--r-- 1 sammy sammy    101 Jan  7  2020 README.md
drwxr-xr-x 6 sammy sammy   4096 Jan  7  2020 app
-rwxr-xr-x 1 sammy sammy   1686 Jan  7  2020 artisan
drwxr-xr-x 3 sammy sammy   4096 Jan  7  2020 bootstrap
-rw-r--r-- 1 sammy sammy   1501 Jan  7  2020 composer.json
-rw-r--r-- 1 sammy sammy 179071 Jan  7  2020 composer.lock
drwxr-xr-x 2 sammy sammy   4096 Jan  7  2020 config
drwxr-xr-x 5 sammy sammy   4096 Jan  7  2020 database
drwxr-xr-x 4 sammy sammy   4096 Apr 18 14:22 docker-compose
-rw-r--r-- 1 sammy sammy   1017 Apr 18 14:29 docker-compose.yml
-rw-r--r-- 1 sammy sammy   1013 Jan  7  2020 package.json
-rw-r--r-- 1 sammy sammy   1405 Jan  7  2020 phpunit.xml
drwxr-xr-x 2 sammy sammy   4096 Jan  7  2020 public
-rw-r--r-- 1 sammy sammy    273 Jan  7  2020 readme.md
drwxr-xr-x 6 sammy sammy   4096 Jan  7  2020 resources
drwxr-xr-x 2 sammy sammy   4096 Jan  7  2020 routes
-rw-r--r-- 1 sammy sammy    563 Jan  7  2020 server.php
drwxr-xr-x 5 sammy sammy   4096 Jan  7  2020 storage
drwxr-xr-x 4 sammy sammy   4096 Jan  7  2020 tests
-rw-r--r-- 1 sammy sammy    538 Jan  7  2020 webpack.mix.js

我们现在将运行 composer install 来安装应用程序依赖项:

docker-compose exec app rm -rf vendor composer.lock
docker-compose exec app composer install

你会看到这样的输出:

Output
No composer.lock file present. Updating dependencies to latest instead of installing from lock file. See https://getcomposer.org/install for more information.
. . .
Lock file operations: 89 installs, 0 updates, 0 removals
  - Locking doctrine/inflector (2.0.4)
  - Locking doctrine/instantiator (1.4.1)
  - Locking doctrine/lexer (1.2.3)
  - Locking dragonmantank/cron-expression (v2.3.1)
  - Locking egulias/email-validator (2.1.25)
  - Locking facade/flare-client-php (1.9.1)
  - Locking facade/ignition (1.18.1)
  - Locking facade/ignition-contracts (1.0.2)
  - Locking fideloper/proxy (4.4.1)
  - Locking filp/whoops (2.14.5)
. . .
Writing lock file
Installing dependencies from lock file (including require-dev)
Package operations: 89 installs, 0 updates, 0 removals
  - Downloading doctrine/inflector (2.0.4)
  - Downloading doctrine/lexer (1.2.3)
  - Downloading dragonmantank/cron-expression (v2.3.1)
  - Downloading symfony/polyfill-php80 (v1.25.0)
  - Downloading symfony/polyfill-php72 (v1.25.0)
  - Downloading symfony/polyfill-mbstring (v1.25.0)
  - Downloading symfony/var-dumper (v4.4.39)
  - Downloading symfony/deprecation-contracts (v2.5.1)
. . .
Generating optimized autoload files
> Illuminate\Foundation\ComposerScripts::postAutoloadDump
> @php artisan package:discover --ansi
Discovered Package: facade/ignition
Discovered Package: fideloper/proxy
Discovered Package: laravel/tinker
Discovered Package: nesbot/carbon
Discovered Package: nunomaduro/collision
Package manifest generated successfully.

在测试应用程序之前,我们需要做的最后一件事是使用 artisan - Laravel 命令行工具进行数据库迁移:

docker-compose exec app php artisan migrate

现在转到浏览器,并在端口 8000 上访问服务器的域名或 IP 地址:

http://server_domain_or_IP:8000

注意:如果您在本地计算机上运行此演示,请使用 http://localhost:8000 从浏览器访问该应用程序。

你会看到这样的页面:

2024-04-14_164455.jpg

您可以使用 logs 命令来检查您的服务生成的日志:

docker-compose logs nginx
Attaching to travellist-nginx. . .
travellist-nginx | 172.24.9.1 - - [18/Apr/2022:14:49:16 +0000] "GET / HTTP/1.1" 200 627 "-" "curl/7.82.0"
travellist-nginx | 172.24.9.1 - - [18/Apr/2022:14:51:27 +0000] "GET / HTTP/1.1" 200 627 "-" "Mozilla/5.0 (X11; Linux x86_64; rv:89.0) Gecko/20100101 Firefox/89.0"
travellist-nginx | 172.24.9.1 - - [18/Apr/2022:14:51:27 +0000] "GET /favicon.ico HTTP/1.1" 200 0 "http://localhost:8000/" "Mozilla/5.0 (X11; Linux x86_64; rv:89.0) Gecko/20100101 Firefox/89.0"

如果您想暂停 Docker Compose 环境,同时保留其所有服务的状态,请运行:

docker-compose pause
Output
Pausing travellist-db    ... done
Pausing travellist-nginx ... done
Pausing travellist-app   ... done

然后您可以通过以下方式恢复您的服务:

docker-compose unpause
Output
Unpausing travellist-app   ... done
Unpausing travellist-nginx ... done
Unpausing travellist-db    ... done

要关闭 Docker Compose 环境并删除其所有容器、网络和卷,请运行:

docker-compose down
Output
Stopping travellist-nginx ... done
Stopping travellist-db    ... done
Stopping travellist-app   ... done
Removing travellist-nginx ... done
Removing travellist-db    ... done
Removing travellist-app   ... done
Removing network travellist-laravel-demo_travellist

laravel-docker-cover.png

结论:

在本文中,我们通过 Docker Compose 在 YAML 文件中定义我们的基础设施,从而设置了一个包含三个容器的 Docker 环境。

从现在起,您可以在 Laravel 应用程序上工作,而无需安装和设置本地 Web 服务器来进行开发和测试。

此外,您将使用可轻松复制和分发的一次性环境,这在开发应用程序以及转向生产环境时很有帮助。

1870

Amazon 黑五提前促销清单

【黑五提前促销4.4折】CHUBORY 2K航拍无人机:特价89.98(原价203.00),光流悬停,一键起降,无头模式,3档速度,直接进行拍照录像!

CHUBORY A68是一款带2K录像功能的折叠航拍无人机,镜头支持90°调节,可通过遥控器在飞行中调整取景角度。

随附带LCD屏的遥控器,可直接进行拍照、录像、调节速度等操作,也可连接CHUBORY AIR应用查看实时FPV画面。

光流悬停、一键起降、无头模式和3档速度设置,让新手练习操控更容易。


【黑五提前促销6.5折】Hoover 胡佛 FH11300PC 便携式地毯清洁机:特价89.99(原价138.98),便携设计,吸力强大,小区域地毯进行快速有效的深层清洁!

便携式设计,采用抗菌材料,清水污水分离双罐技术,可对小区域地毯进行快速有效的深层清洁。

吸力强大,各种难以去除的污渍,都能轻松刷洗干净,适用于地毯、地垫及布质家饰品上的局部污渍清洁。


【限时8.2折】Jamieson 健美生 100亿 天然益生菌 (60粒):特价16.47(原价19.99),促进肠道和消化系统健康!

提供每日所需益生菌,平衡肠道微生物,帮助整体消化和免疫健康,促进肠道和消化系统健康,易于吞咽,

每个胶囊配方至少含有100亿个活性益生菌细胞,含有8种独特益生菌,平衡肠道菌群,维持身体健康。


【白菜价4.5折】Casio 卡西欧 MH-10M 商务计算器:特价9.00(原价19.99),提供成本、售价和利润计算按键,支持税费计算!

这款Casio 卡西欧MH-10M是一款10位商务计算器,大屏数字显示配合大按键,查看和输入都更直观。

机身提供成本、售价和利润计算按键,适合日常报价、记账或简单经营核算使用。

支持税费计算,并配有快速更正键,输入出错时修改更方便。

采用太阳能供电,同时带电池备用电源。

桌面小巧,放在办公桌、收银台或家中使用都合适。


【黑五提前促销6.2折】Canon Ivy 2 迷你打印机:特价99.00(原价159.99),超便携,免墨水,随时随地打印照片!

想随时随地打印照片?佳能Ivy 2迷你照片打印机是你的绝佳选择!

通过蓝牙5.0连接,采用ZINK零墨水技术,无需墨盒却能打印出清晰、色彩艳丽的照片,背面还自带黏贴功能,贴哪都方便!

小巧便携,随手装进包包里带着走,记录生活每一刻。


【黑五提前促销5折】Roborock 石头 Qrevo S5V 扫拖机器人:特价499.99(原价999.99),高效清洁,智能避障,自动集尘洗拖烘干,享受懒人洁净生活!

石头扫拖一体机器人特价啦,好价格很快就没有啦,快抢!

超强吸力,零缠结系统+FlexiArm 双旋转拖把,边角污渍一网打尽,养宠家庭福音!

智能底座还能自动集尘、洗拖布、热风烘干,7 周免动手超省心!享受真正的懒人式洁净生活!


【限时5.6折】Conair 专业三刀头 电动剃须刀:特价20.65(原价36.90),三刀头旋转设计,剃须更方便更快捷!

三刀头旋转设计,方便打理下巴、脸颊、头发等部位的胡须。

金属机身搭配可充电锂电池,不用每次找插座,平时放浴室,早上拿起来就能用!


【限时8折】Tech Drive 超静音 智能浴室排气扇:特价65.18(原价81.48),有效排出浴室内的潮湿空气、蒸汽及异味!

采用130 CFM大风量设计,可有效排出浴室内的潮湿空气、蒸汽及异味,帮助减少洗澡后镜面起雾和室内湿气积聚。

内置湿度感应器,方便根据浴室湿度变化进行通风管理,特别适合家庭浴室及洗手间使用。


【史低价6.2折】ZWILLING 双立人 Pro 30厘米 不锈钢炒锅:特价79.99(原价129.99)

采用18/10不锈钢锅身,配合Sigma Clad锅底,受热更快更均匀,锅内较大面积都可用于煎炒。

30厘米口径适合日常翻炒蔬菜、肉类或制作中式炒菜。

锅身为钛强化多层结构,可放入洗碗机清洗;加宽倒液边缘,倾倒汤汁或酱汁时更便于控制。

实心不锈钢手柄在高温下可较长时间保持凉爽,端拿和移动更方便,适用于电磁炉、电炉、燃气灶及陶瓷炉。


【限时7折】dogtooth 21V 无绳电钻套装:特价34.99(原价49.99),两档变速和23+1档扭矩调节,23件附件,完美满足钻孔、拧螺丝及日常DIY

这款21V无绳电钻最高转速1350RPM,配备10毫米夹头,可用于钻孔、拧螺丝及日常DIY。

提供两档变速和23+1档扭矩调节,面对不同材料时可按需要调整控制力度。

机身内置LED工作灯,在昏暗或狭窄位置操作时更容易看清施工区域。


【限时8.5折】EzyShade 10层防水全天候 汽车罩:特价76.49(原价89.99),轻便耐用,防水防晒防雪防风防尘,为您的爱车提供全面保护!

采用先进多层压制材料,具备卓越的防水、防晒、防雪、防风和防尘性能,为SUV和轿车提供全面保护。

专属尺寸表确保每款车型完美贴合,配有防风绑带、反光条、侧门拉链、后视镜袋、防盗锁孔及天线保护套等贴心设计。

轻便耐用,抗紫外线不刮漆,附带收纳袋便于存放。


【限时8.4折】Freshorix 电动 抽气旅行压缩袋 (18件套):特价35.99(原价42.74),快速真空收纳,减少占用空间,旅行整理或搬家换季收纳神器!

这套旅行压缩袋含18个不同尺寸的收纳袋,分别为6个70×50厘米大号、6个60×40厘米中号和6个50×35厘米小号,方便按衣物体积分类收纳,减少行李箱内占用空间。

套装配有无线电动抽气泵,内置1500mAh充电电池,支持Type-C充电,抽气力为4000Pa;单个袋子抽气约需10至20秒。

袋体采用PA+PE材质,配双重密封条,可用于旅行整理,也适合搬家或家中换季收纳。


【限时8折】Elegear 圣诞发光礼盒 (3件套):特价39.99(原价49.99),3个不同尺寸,8种灯光模式,定时开关,室内外节日装饰好物!

这套圣诞发光礼盒含大、中、小3个不同尺寸的礼盒,共配60颗LED灯珠,彩色PVC外壳带有圣诞树、驯鹿和雪花等图案。

灯光提供8种模式可选,长按按钮可开启定时功能:亮6小时后自动关闭,18小时后再次开启。

装后不用时可叠放收纳,适合室内外节日装饰。


【限时7折 | ipad平替】Amazon Fire HD 10.1英寸 高清大屏平板:特价159.99(原价229.99),64GB容量,日常看看剧、听音乐、刷网页基本够用!

64GB容量,日常看看剧、听音乐、刷网页基本够用,出门旅行带着也方便。

比较适合想买台平板娱乐,又不想花太多预算的人~


【史低价7.2折】STAUB珐宝 南瓜造型 陶瓷烤碗 (500ml):特价39.99(原价55.20),瓜纹理搭配焦糖橘色,耐热抗刮,日常磕碰不留痕!

烤完直接端上桌,玻璃瓷釉配焦橙色很衬秋天的餐桌。

耐热到约300°C,烤箱、冷冻、洗碗机都能用。

瓷面抗刮,日常磕碰不容易留痕。


【限时8.3折】RestoraLAX 益生元膳食 纤维软糖 (90粒):特价14.77(原价17.79),帮你促进肠道蠕动,改善便秘!

平时蔬菜吃得少、排便不规律的姐妹可以试试!

每天嚼4颗就能补充8g益生元膳食纤维,帮助肠道好菌生长、促进规律排便。

6种水果口味,每次服用糖分不到1g,比冲泡纤维粉方便多了!

Shoppers 用款30粒还要$12.5!咱们这里90粒才仅$14.77!


【史低价5.7折】ZWILLING 经典黑珐琅锅 (3.8L):特价199.99(原价350.00),锁水保温+慢炖入味,炖肉煲汤都合适!

天冷了就想炖锅牛腩、排骨汤,满屋子都是香味!

厚实铸铁锅身蓄热好,锅盖内侧的凸点设计能让水汽回落,炖肉不容易干,食材慢慢煮得软烂入味。


【限时8.7折】Jamieson 健美生 高含量镁片:特价9.97(原价11.47),帮助维持肌肉正常功能、骨骼健康和电解质平衡!

平时工作忙、三餐不规律,担心镁摄入不够的可以看看这款!

每片含250mg镁,帮助维持肌肉正常功能、骨骼健康和电解质平衡。


【限时7折】Yunari 无线颈部护颈仪:特价49.99(原价69.99),久坐盯屏幕脖子发僵,热敷+气囊支撑,减轻发僵疼痛,电脑党必备!

久坐盯屏幕脖子发僵,戴上它按一下气囊慢慢托起下巴,高度能自己调。

记忆棉贴合颈部和下巴,热敷温度温和,肌肉放松不少。

魔术贴固定,坐着看书或走动都不容易移位。

颈围最大支持54cm,附延长带,出差带着也方便。


【限时7折 | 早餐神器】Nostalgia Retro 三合一多功能 早餐机:特价139.09(原价199.99),集成咖啡机+电煎锅+烤箱,早餐一次搞定,上班族必备!

内置烤箱,一次可以烘焙4片面包、7英寸披萨或其他食材。

顶部小煎锅不仅可以做荷包蛋、煎蛋,还可以热火腿、煎肉片。

内置的咖啡机一次可制作3杯咖啡。

操作非常简单,赶时间的上班族必备!


【限时8.1折】Always 超强隔夜卫生巾 带护翼 (36片):特价12.99(原价15.99),超薄亲肤,大吸力零渗漏,经期无负担,最畅销的卫生巾品牌!

Always卫生巾系P&G旗下品牌,是北美女性最喜爱,也是最畅销的卫生巾品牌。

Always卫生巾号称全球首款液体材质卫生巾,主打特征为无荧光剂,超薄、亲肤、大吸力。


【白菜价5.3折】Yeblues 女式高腰蕾丝防走光 打底裤 (3条装):特价9.99(原价18.99),柔软顺滑,高腰设计,蕾丝装饰,日常休闲运动更安心!

这款女式打底短裤采用尼龙与氨纶面料,触感柔软顺滑;高腰设计包覆腰腹和臀部,裤脚加入蕾丝装饰。

穿在连衣裙、半身裙或牛仔裙内,可减少大腿摩擦,也能避免内裤痕迹外露。

短裤可覆盖臀部和大腿,日常搭配裙装更安心;也可作为睡裤、瑜伽短裤或运动打底穿着。

3条装方便替换,适合平时常穿裙装,或需要兼顾活动便利性的人。


【限时7.1折】Simple Modern 不锈钢保温杯 (40 Oz):特价34.99(原价48.99),双层真空保温,密封防漏便携,兼顾实用性与高颜值的随行水杯!

采用优质 18/8 不锈钢打造,坚固耐用,配备双层真空隔热结构,可长时间保温或保冷,适合水、咖啡等多种饮品。

锥形杯身可放入车载杯架,搭配手柄便于携带。

吸管盖设计有效防漏,日常通勤或出行使用更安心,是兼顾实用性与颜值的随行水杯。


【限时8折】HomeTop 毛茸茸记忆棉 家居鞋:特价23.99(原价29.99),毛绒绒,软乎乎,超暖和,踩着舒服又暖和!

加拿大冬天一到,早上起床踩到冰凉的地板,真的瞬间清醒!🥶

这款毛绒拖鞋就很适合冬天穿,里面软乎乎的,搭配记忆棉鞋垫,踩着舒服又暖和。

平时在家追剧、做饭都能穿,鞋底还有防滑纹路。

最省心的是穿脏了直接扔洗衣机,冬天家里备一双真的很实用~


【限时7.1折】TheraBreath 大瓶装 防蛀漱口水 (1L):特价17.75(原价24.97),无酒精不辣口,含氟能帮助防蛀,不只是单纯遮口气!

TheraBreath这款是牙医研发的,无酒精不辣嘴,薄荷味也不会太冲,约会前漱一下还挺合适~

而且含氟能帮助防蛀,不只是单纯遮口气!

重点是1L大瓶装,够用好一阵子了!


【限时4.8折】Cuzlarmul 迷你短柄水槽疏通器:特价4.50(原价9.29),贴合度高,吸力强劲,环保高效,下水道堵塞救星!

相比于大号马桶皮搋子,这种迷你短柄款专门针对厨房水槽、洗手盆和淋浴排水口设计,贴合度更高、吸力强劲。

遇到下水变慢时随时拿出来抽吸几下就能搞定,无需使用刺激性的管道疏通剂,既环保又高效,绝对是居家必备的实用小工具!


【限时7.2折】N.NETDOT 10升 带盖 黑色垃圾桶 (3件套):特价29.99(原价41.43),紧凑时尚,密封锁味,弹出桶盖,一键打开!

这款垃圾桶设计紧凑时尚,适用于浴室、卧室或厨房等狭小空间。

配备弹出式桶盖,一键打开。



【限时6.1折】Zojirushi 香槟金 不锈钢 保温杯 (473ml):特价39.26(原价64.79),轻巧保温,防锈防漏,通勤居家开车出门都方便!

天气越来越冷,保温杯又该准备起来了~

轻巧杯身可以轻松放进包里,通勤、办公室、开车出门都方便。

香槟金配色简约又有质感,配备单手按压弹盖设计,带有安全锁扣,放在包里绝不担心误触漏水。


【限时8折】Utopia Towels 100%纯棉 浴巾毛巾 (8件套):特价39.99(原价49.99),触感柔软,吸水性好,重量较轻,多个尺寸满足不同需求!

这套毛巾包含2条27×54英寸浴巾、2条16×28英寸手巾和4条12×12英寸方巾,覆盖洗澡、洗手和日常清洁等不同需求。

采用100%环锭纺棉,触感柔软,吸水性较好且重量较轻。

深灰色外观简洁,适合想一次配齐多种尺寸毛巾的人。


【限时6.8折】Nespresso Vertuo Next 蓝牙智能胶囊咖啡机:特价155(原价$229),一键操作,简单省时,在家就喝到咖啡厅里的原味咖啡!

这款 Nespresso 胶囊咖啡机能让你在家就喝到咖啡厅里的原味咖啡~

采用胶囊专用冲泡技术+独家离心提取技术和条码读取功能,每分钟旋转4,000次,最大可能的保留不同种咖啡的风味和口感~

一键式操作,简单省时,兼容3种大小的胶囊,冲泡后胶囊会自动弹出储存,非常方便。


【限时7.2折】Elite Gourmet 蓝光玻璃电热水壶 (1升):特价23.77(原价32.99),加热迅速,安全健康,时尚美观,小巧便携!

外形小巧时尚,玻璃材质,不含BPA,运行时内部LED蓝光照亮整个水壶。

功率高达1100瓦,容量1升,不到8分钟即可烧开水。

无绳设计,360°圆盘底座,烧开后或干烧时自动关机。

大开口,容易清洗,内置过滤网。


【限时6.3折】HARRITPURE 金色拱形壁挂镜 (24×36英寸):特价75.99(原价119.99),清晰无畸变,防锈防腐蚀,兼顾日常照镜与空间装饰!

这款24×36英寸拱形壁挂镜采用金色铝合金边框,弧形顶部线条简洁,可用于浴室洗手台上方、卧室或玄关墙面,兼顾日常照镜与空间装饰。

镜面采用高清玻璃,提供清晰、无畸变的成像,化妆、剃须和整理仪容时更方便。

铝合金框架具备防锈、防腐蚀特性,随附预装安装配件,墙面安装更省事,适合现代、农舍或简约风家居搭配。


【限时7.2折】Bedsure 3D泡泡绒盖毯:特价22.99(原价31.99),摸起来软软的,窝沙发追剧就想裹着它!

最近早晚一凉,窝在沙发上刷剧,总忍不住把腿缩起来。这时候就想手边有条软乎乎的毯子,随手一拉,盖好了再接着看。

这条泡泡毯摸起来软软的,盖着有点分量,又不会厚重。

50×60英寸,盖腿、裹住上半身都方便,现在放在沙发边正好用,冬天还能叠在被子上添一层暖意。


【限时8折】YETI 保温随行杯 (473毫升):特价30.40(原价38.00),热带粉超吸睛,冷热都能保温,每天通勤超实用!

YETI 这款真的很适合每天通勤用,冷热都能保温!

473mL大小刚好还能直接放车载杯架,热带粉颜值也太戳了~

喝完直接丢洗碗机,多个还能叠起来收纳不占地方,办公室、开车、出门随手带都很方便!


【限时6.5折】OLANLY 蓬松防滑地毯:特价29.99(原价45.99),温暖舒适,色彩柔和,不掉毛、不褪色、无异味,为家居增添温馨氛围!

这款灰色蓬松地毯(尺寸4×5.9英尺)采用柔软长毛绒与记忆海绵复合结构,触感如踩云朵般温暖舒适,且不掉毛、不褪色、无异味,适合儿童房、卧室或客厅使用。

防滑底背采用无纺布与点状塑料设计,可有效增强在硬木、瓷砖等地面上的摩擦力。

地毯由环保聚酯纤维制成,色彩柔和、尺寸多样,能为家居增添温馨氛围。


【限时8折】adidas Defender 5 运动旅行包:特价40(原价50),大容量主仓+多个拉链口袋,分类收纳衣物、装备和随身小物!

这款Defender 5小号运动旅行包适合训练、比赛或周末短途出行使用。

大容量主仓配合多个拉链口袋,可分类收纳衣物、装备和随身小物。

底部采用防泼水材质,放在地面时更安心。

包内设有带通风设计的拉链鞋仓,方便将运动鞋或穿过的装备单独收纳。


【限时8.1折】Zigzagger 男士休闲加绒拖鞋:特价34.99(原价42.99),加绒保暖,一脚蹬进去不用弯腰,出门很方便!

一脚蹬进去不用弯腰,出门拿快递、丢垃圾都方便。

鞋底是厚实的橡胶材质,走在院子或车道上也不怕硌脚。

内里加绒保暖,冬天在瓷砖地上踩也不凉。


【限时7.5折】Charmast 4 线充电宝:特价26.24(原价34.99),10000mAh 大容量,出门不用带线,即插即充~

再也不用翻包找数据线!这款充电宝自带 4 根线,苹果安卓全都兼容

可同时给 6 台设备充电,一台就能满足全家用电需求。

10000mAh 大容量续航,LED 数字屏实时查看剩余电量。机身轻巧便携,还享 24 个月售后保障。


【限时7.1折】HSHRISH 双层大号保温午餐包 (16L):特价39.99(原价55.99),主仓能塞24罐饮料,上层还能拉开扩展4L,干湿分开放不串味!

16L主仓能塞24罐饮料,上层还能拉开扩展4L,干湿分开放不串味。

6mm保温层配铝膜内衬,冷热都能撑8小时。

900D牛津布防泼耐刮,装10kg也不开线。

背后织带挂卡扣钥匙,通勤露营都顺手。


【限时7.2折】Soleilwear 70合1 迷你电动螺丝刀套装:特价42.99(原价59.99),70个钻头基本覆盖日常所需,超实用居家维修工具!

这款迷你电动螺丝刀套装轻巧便携,女生也能轻松操作,适合组装家具、修理眼镜首饰。

自带LED灯方便在昏暗角落工作,70个钻头基本覆盖日常所需,是实用的居家维修工具。


【史低价4.1折】Elite Gourmet 多功能不粘 电煎锅:特价26.99(原价66.46),一锅多用,煎、炒、煮都能轻松搞定!

一锅多用,煎、炒、煮都能轻松搞定,不需要频繁开炉灶。

不粘涂层对厨艺不佳的新手更友好,让清洁工作也变得简单许多。

无论是学生宿舍、公寓厨房还是房车露营使用,都能成为提升生活便利度的小帮手。


【限时7.2折】LEGO 乐高 超级赛车系列《回到未来》时光机:特价$25.14(原价 $34.99 )

乐高Lego回到未来时光机,适合 9 岁以上,全套 357 颗粒。既可以培养孩子动手能力,也可以培养孩子故事创作表达能力!

套装包含布朗博士与马丁两个人偶,支持角色扮演。玩具拥有跑车、飞行车两种拼搭模式,还原诸多电影原版细节。


【限时7.8折】TEEHO TE002 智能指纹密码门锁:特价69.99(原价89.99)

出门忘带钥匙让人开一次锁很贵的!还有出门忘记门锁好没有,冬天这么冷,回去一趟很麻烦的。

安装个智能指纹密码锁就方便多啦!智能帮你锁好门,开门也方便!

现在限时特卖,历史最低价啦!


【限时7.1折】MERACH 全身震动塑形机:特价119.99(原价169.99),居家燃脂健身神器!每天站上去十分钟,肩颈和腿都不容易发僵!

每天站上去十分钟就能让血液循环起来,肩颈和腿都不容易发僵。

150W电机震感够足,99档速度可以慢慢往上调,不管是恢复运动还是想出汗都能找到适合自己的那一档。

蓝牙连上手机放歌,边震边听节奏,比想象中容易坚持。


【限时7折】ErGear 可旋转双显示器支架:特价41.99(原价59.99),节省桌面空间,任调高度角度,减少视觉疲劳,提高工作效率!

支架能大面积的节省你桌面的空间,让你一堆的文件或者是杂物都有更多的空间,亦或是喜欢简洁空无一物的桌面的人必备之物。

更重要的是,长时间固定观看显示器导致颈部酸痛,但装了支架之后就能随时随意调节显示器的高度,角度去寻找你舒适的姿势。

这款显示器支架能承载 32" 的显示器,每臂承重17.6 lbs。


【限时7.5折】Charmast 6口 移动电源/充电宝 (10000mAh):特价26.24(原价34.99),可墙插充电,自带充电线,同时为6台设备快速充电!

10000mAh大容量,纤薄外形,内置壁插式插头,可插入插座直接为充电宝补充电力,带USB-C、Micro USB、Lightning等3条充电线。

另外配备2个USB和1个USB-C充电口,采用 Smart E 3.0 充电技术,可同时为6台设备快速充电。

内置LED屏,可显示剩余电量。


【限时7.1折】RENPHO 专业电动足部按摩器/足疗机:特价119.99(原价169.99),深层揉捏,气压按摩,舒缓温热,缓解足部疲劳和疼痛!

这款RENPHO电动足部按摩器经过300多名按摩治疗师的精心设计,并通过了多家专业机构的测试与认证。

拥有独家深度揉捏和空气压缩技术,通过按摩脚部,放松全身,具有气动、滚轴、揉捏和加热等功能,提供深度揉捏指压足部按摩。

缓解足底筋膜炎的足部疼痛,改善血液流动,通过足部神经反射减少身体疲惫,促进更好的睡眠。


【限时7.6折 | 健身减脂必备】RENPHO 智能蓝牙 身体测量卷尺:特价33.99(原价44.99),精准追踪身材变化,告别手动记录,无缝同步数据至手机!

RENPHO智能身体测量卷尺,支持蓝牙连接手机APP,测量数据自动记录并生成变化曲线,方便长期追踪身材变化趋势。

大屏LCD显示读数清晰,避免传统卷尺误读问题。

可单人操作的锁定挂钩设计,轻松测量腰围、臂围、大腿等多部位尺寸。

适合健身增肌、减脂塑形或产后恢复人群使用,让身体数据变化更直观更好管理。


【限时7.8折】LEGO 乐高 Monster Jam“闪耀猛击”(Sparkle Smash)回力卡车玩具:特价34.98(原价44.99)

这款大脚怪卡车玩具高度还原了真实的 Sparkle Smash 卡车,不仅饰有闪耀的星星图案,还配有标志性的独角兽角。

孩子们可以充分发挥想象力,让卡车冲入“赛场”,创造属于他们自己的 Monster Jam 赛事与冒险故事。


【限时6.2折】Cruzix B-7000 多功能强力胶 (4支装):特价9.99(原价15.99),专为手机屏幕首饰维修打造,粘接更牢固更持久!

来自Cruzix的B-7000工业级强力胶,专为手机屏幕、平板、电子元件维修打造,固含量高达30%-35%,粘性强于普通硅胶与亚克力胶,粘接更牢固更持久;

透明半流体质地,固化后不发黄,可拉伸达自身长度900%不易断裂,防水防气体渗透,耐用性出色;

内置细嘴精准点胶设计,出胶均匀不拉丝、不堵头,操作更精细省胶。


【限时6.6折】AstroAI L7 无线迷你胎压泵:特价32.99(原价49.99),快速充气,操作简便,支持各种车类球类等!

这款无线迷你胎压泵采用TrueGauge屏幕技术,每秒可采集200次压力数据,读数精准。

支持汽车、摩托车、自行车、球类及自定义四种预设模式,操作简便。

内置4000mAh电池,满电可充约8条轮胎,并具备自动关闭功能。

顶部手电筒支持常亮、SOS和频闪模式,还配备USB接口可为手机应急充电,是一款实用的随车工具。


【限时6.1折】Leeden 抱枕:特价19.99(原价32.99),柔软顺滑,透气吸汗,纯白色简约百搭,抗皱不易褪色起球!

采用100%纯棉800支纱面料,经过丝光工艺处理,触感柔软顺滑,透气吸汗。

纯白色设计简约百搭,面料紧密编织,抗皱、不易褪色和起球。

适用于20x54或21x54英寸抱枕,支持冷水机洗、低温烘干,越洗越柔软。


【限时5.6折】Keemall U型充气 护颈枕:特价13.98(原价24.99),轻巧便携,快速充气,长途飞行、自驾或办公室午休的舒适救星!

这款旅行枕仅重110克,两口气快速充气,收纳携带非常方便。

可拆卸枕套易于清洁,适合长途飞行、自驾或办公室午休,是提升旅途舒适度的实用好物。


【限时6.9折】Gritin 可调节LED书灯:特价17.99(原价25.99),温柔护眼,稳固可靠,随心调节亮度色调,书虫必备夜读神器!

这款Gritin 19颗LED书灯采用横向灯头设计,提供更宽的照明范围。

三种色温模式与无级调光功能随心调节亮度和色调,搭配记忆功能,让每次使用都贴心如初,长时间阅读也不易疲劳。

360°柔性颈管可随意调节角度,防滑夹具稳固可靠,一定会成为书迷们的心头好!


【限时6.5折】Mkicesky 人体工学记忆 海绵枕头/颈椎枕:特价40.28(原价61.99),贴合颈椎曲线,舒缓颈肩压力,有效缓解疼痛,提高睡眠质量!

这款记忆海绵枕头专为缓解颈部疼痛设计,密度均匀,贴合头部和颈部的曲线,填补空隙并保持脊柱的自然生理曲度。

采用压力缓解记忆海绵,适应人体曲线,支撑头部和颈部,确保舒适入睡。



【限时7.1折】Utopia Bedding 防缩防褪色 床单 (4件套):特价24.99(原价34.99)

Utopia Bedding 床单4件套 顺滑舒适,防缩水防褪色,床笠采用全方位松紧带设计,可轻松贴合床垫,使床铺外观更加美观。

目前特价优惠啦,需要的去看看!


【限时8折】Puroma 4位组合钥匙存储锁箱:特价19.99(原价24.99),高安全性,大容量存储,轻松存放钥匙或门禁卡!

一款便携式壁挂安全锁盒,提供10,000种可重置密码组合,保障钥匙安全。

采用坚固铝合金材质,防锤击、防锯切、防撬,并具备防水防锈特性。

支持墙壁安装或挂钩悬挂两种方式,内部大容量可存放钥匙或门禁卡,适合住宅、公寓、车库备用钥匙管理,也适用于房产中介、Airbnb房东及服务人员临时取用。


【限时7.6折】Aqara U100 智能锁:特价189.99(原价249.99),无门把手,小巧精简,多重解锁,自动上锁,开启你的智能家时代!

Aqara U100智能锁是一款非常方便且多功能的智能家居装备——是美国市场上首款将苹果Home Key技术与键盘、指纹识别、NFC标签和实体钥匙结合的锁具,提供了多种解锁选项,以适应不同用户的喜好。

用户可以选择使用密码、指纹、苹果Home Key、NFC标签,甚至是实体钥匙来解锁。密码功能可以为不同的个人设置独特的代码,而指纹识别具有98.6%的识别率。


【限时5折】Wattne 深层肌肉放松 筋膜枪/按摩枪:特价69.99(原价139.99),深层按摩,加速恢复,促进血液循环,有效缓解疼痛!

此款筋膜枪20速可调,通过枪头冲击身体目标部位来帮助肌肉软组织放松恢复,减少局部组织张力、缓解颈部、腰背、肩膀、腿部疼痛、促进血液循环。

具有非常好的缓解肌体疲劳的作用。


【限时6.8折】Joydeco 84英寸 遮光亚麻窗帘 (双片装):现价33.99(原价49.99),夏季隔热降温,冬季锁温保暖,有效降低噪音!

Joydeco全遮光窗帘采用双层织造结构,背面灰色遮光层可有效阻挡高达100%阳光与紫外线,深色款遮光效果更佳,夏季隔热降温、冬季锁温保暖。