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 Dockerfile
và docker-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 🤤🤤🤤🏆🍨🍨🍨.