Zsh

Zsh viết tắt của “Z Shell” là một shell nâng cao cho hệ thống Unix và Linux.

Nó được phát triển nhằm cung cấp các tính năng và khả năng cao hơn so với shell mặc định trên hầu hết các hệ thống Unix.

Zsh kết hợp những tính năng mạnh mẽ của các shell trước đó như Bash, Ksh và cung cấp nhiều tiện ích và khả năng tùy chỉnh.

Zsh Artisan

Zsh Artisan là một plugin hỗ trợ bạn trong việc chạy lệnh artisan trong dự án Laravel. Với tính năng auto-completion và có thể tự động mở tập tin được tạo bởi Artisan.

Bạn có thể tim hiểu thêm tại đây: https://github.com/jessarcher/zsh-artisan

Hướng dẫn cài đặt Zsh Artisan trong Docker

Create Dockerfile

Dockerfile là một tập tin văn bản không có phần mở rộng tập tin, chứa tất cả các lệnh mà người dùng có thể gọi trên dòng lệnh để tạo một Image.

Trong bài hướng dẫn này, tôi sử dụng Image webdevops/php-nginx-dev:8.2 để cài đặt plugin Zsh Artisan và nội dung Dockerfile của tôi như sau:

FROM webdevops/php-nginx-dev:8.2

# Install zsh, git, and curl
RUN apt-get update \
    && apt-get install -y zsh git curl

# Switch to the application user
USER application

# Install Oh-my-zsh for application user
RUN sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)" "" --unattended

# Install Powerlevel10k theme
RUN git clone --depth=1 https://github.com/romkatv/powerlevel10k.git /home/application/.oh-my-zsh/custom/themes/powerlevel10k

# Switch back to root
USER root

# Install zsh-artisan
RUN git clone https://github.com/jessarcher/zsh-artisan.git /home/application/.oh-my-zsh/custom/plugins/artisan

# Enable zsh-artisan plugin and set Powerlevel10k theme in .zshrc
RUN sed -i 's/^ZSH_THEME=.*/ZSH_THEME="powerlevel10k\/powerlevel10k"/' /home/application/.zshrc && \
    sed -i 's/plugins=(/plugins=(artisan /' /home/application/.zshrc && \
    echo 'POWERLEVEL9K_DISABLE_CONFIGURATION_WIZARD=true' >> /home/application/.zshrc

# Add alias for php artisan
RUN echo "alias artisan='php artisan'" >> /home/application/.zshrc

# Switch back to application user to apply changes
USER application

Sử dụng Dockerfile trong docker-compose.yml

version: "3"
services:
  manhdan:
    build:
      context: ./
      dockerfile: Dockerfile
    container_name: [example: manhdan]
    environment:
      - PHP_DISPLAY_ERRORS=1
      - PHP_DATE_TIMEZONE=Asia/Tokyo
      - WEB_DOCUMENT_ROOT=/app/public
      - COMPOSER_VERSION=2
    networks:
      - docker-net
    volumes:
      - ../httpdocs:/app
      - ./custom.conf:/opt/docker/etc/nginx/vhost.common.d/custom.conf
    labels:
      - "traefik.enable=true"
      - "traefik.http.routers.manhdan.tls=true"
      - "traefik.http.routers.manhdan.rule=Host(`manhdandev.com`)"
      - "traefik.http.routers.manhdan.entrypoints=websecure"
networks:
  docker-net:
    external: true

Build Container

Sau khi đã tạo xong Dockerfiledocker-compose.yml, chúng ta sẽ khởi tạo Container bằng lệnh sau:

docker compose up -d --build

Run Docker exec

Sau khi khởi tạo xong Container, chúng ta có thể sử dụng lệnh docker exec để khởi tạo một phiên làm việc tương tác mới trong Container.

Điều này cho phép chúng ta truy cập và tương tác trực tiếp với Container:

docker exec -ti -u 1000:1000 [container_name] /bin/zsh

Kết quả của công việc bạn đã làm đang chờ bạn khám phá!

Sau khi đã hoàn thành các bước trên, giờ là lúc để chúng ta sẽ cùng nhau khám phá thành quả công sức của mình.

Chúng ta cần phải vào thư thư mục chứa source Laravel bằng lệnh sau:

cd folder_laravel

Bạn hãy chạy lệnh sau để xem để xem thành quả của mình:

artisan + tab

Đây chính là thành quả của chúng ta sau khi thực hiện các bước ở phía trên 🤤🤤🤤🏆🍨🍨🍨.

CÓ THỂ BẠN QUAN TÂM

Laravel Model

Laravel Model

Model là gì? Trong mô hình MVC, chữ “M” viết tắt là Model, Model dùng để xử lý logic nghiệp vụ trong bất kì ứng dụng dựa trên mô hình MVC. Trong Laravel, Model là lớp đại diện cho cấu trúc logic và...

How to Install Laravel on CentOS 6/7

How to Install Laravel on CentOS 6/7

Laravel là một PHP Framework mã nguồn mở miễn phí, được phát triển bởi Taylor Otwell với phiên bản đầu tiên được ra mắt vào 6/2011. Laravel ra đời nhằm mục đích phát triển ứng dụng web dựa trên mô hìn...

Laravel Socialite Login With Linkedin

Laravel Socialite Login With Linkedin

LinkedIn LinkedIn là mạng xã hội tập trung vào mạng lưới nghề nghiệp và phát triển nghề nghiệp và chuyên nghiệp lớn nhất thế giới trên internet. Bạn có thể sử dụng LinkedIn để tìm công việc hoặc...

Laravel Routing

Laravel Routing

Route là gì? Đúng như tên gọi của nó, Route thực hiện chức năng định tuyến, dẫn đường cho các HTTP request gửi đến đúng nơi mà ta mong muốn. Với sự phát triển mạnh mẽ của ứng dụng web ngày nay, việc...

Laravel Scout Full Text Search With Meilisearch

Laravel Scout Full Text Search With Meilisearch

Laravel Scout cung cấp một giải pháp đơn giản, dựa trên trình điều khiển để thêm tìm kiếm Full Text vào các mô hình Eloquent của bạn. Khi sử dụng Eloquent, Scout sẽ tự động giữ chỉ mục tìm kiếm của bạ...

Laravel 9 REST API With Sanctum Authentication

Laravel 9 REST API With Sanctum Authentication

Laravel Sanctum Laravel Sanctum cung cấp một hệ thống authentication đơn giản cho các SPA, ứng dụng Mobile và API đơn giản sử dụng token. Sanctum cho phép ứng dụng của bạn phát hành các mã token...

Eloquent Methods: whereDoesntHaveRelation and whereMorphDoesntHaveRelation

Eloquent Methods: whereDoesntHaveRelation and whereMorphDoesntHaveRelation

New Laravel 11.37: Eloquent Methods Laravel cung cấp cho chúng ta khả năng xây dựng các truy vấn dữ liệu mạnh mẽ với Eloquent ORM, giúp chúng ta có thể xử lý các truy vấn cơ sở dữ liệu phức tạp một...

Laravel UI Custom Email Verification Template

Laravel UI Custom Email Verification Template

Nếu bạn đang dùng thư viện laravel/ui để làm các chức năng liên quan đến authentication, và trong dự án của bạn, bạn cần thay đổi template email verification thay vì sử dụng template email verificatio...

Laravel User Authentication

Laravel User Authentication

Trong hướng dẫn này, tôi sẽ hướng dẫn bạn xây dựng chức năng đăng nhập trong Laravel. Công bằng mà nói thì bạn có thể sử dụng Laravel UI hoặc JetStream để tự động tạo ra chức năng đăng nhập trong Lara...

ManhDanBlogs