使用VSCode Remote-Containers以极快的速度准备Laravel7开发环境(CentOS8+PHP7.4+MongoDB4.4)
首先
使用Docker快速准备开发环境容器,并总结了在容器内使用VSCode + Remote-Containers(扩展功能)进行实际开发的步骤。如果文章内容有错误,请在评论栏指出。虽然目前还存在一些限制,但至少已成功启动了容器,现在将其公开。
前提条件 (Paraphrased in Chinese)
-
- Docker ( Windows/MacOS の方は Docker Desktop ) が使用できること
- VSCode が使用できること
文件结构
请按以下配置创建目录和文件。
如果您想先试用一下,请从 GitHub 上克隆。
Project/
├─ .devcontainer/
│ ├─ devcontainer.json
│ └─ Dockerfile
└─ mongodb-org.repo
步骤1:在VSCode中安装Remote-Containers扩展插件。
请安装名为 Remote-Containers 的扩展功能到 VSCode 中。
步骤2:创建devcontainer.json文件。
{
"name": "test",
"context": "..",
"dockerFile": "Dockerfile",
"settings": {
"terminal.integrated.shell.linux": null,
"workbench.startupEditor": "newUntitledFile",
"editor.minimap.enabled": true,
"vsicons.dontShowNewVersionMessage": true,
"explorer.confirmDelete": false,
"files.autoSave": "afterDelay"
},
"appPort": [ 8000, 27017 ],
"remoteUser": "vscode",
"workspaceFolder": "/var/www/html",
"extensions": [
"alefragnani.bookmarks",
"mikestead.dotenv",
"mhutchie.git-graph",
"eamodio.gitlens",
"onecentlin.laravel-blade",
"austenc.laravel-blade-spacer",
"onecentlin.laravel5-snippets",
"cjhowe7.laravel-blade",
"felixfbecker.php-pack",
"vscode-icons-team.vscode-icons"
]
}
创建 Dockerfile 的步骤三。
FROM centos:8
LABEL maintainer="slangsoft"
LABEL version="1.0"
LABEL description="Laravel sample project for trying out the VS Code Remote - Containers extension."
ARG USERNAME=vscode
ARG USER_UID=1000
ARG USER_GID=$USER_UID
ARG PATH_LARAVEL=/var/www/html
# Basic settings
RUN set -x \
&& dnf -y upgrade \
&& dnf -y install sudo dnf-utils wget git \
&& groupadd --gid $USER_GID $USERNAME \
&& useradd --shell /bin/bash --uid $USER_UID --gid $USER_GID --create-home $USERNAME \
&& echo $USERNAME ALL=\(root\) NOPASSWD:ALL > /etc/sudoers.d/$USERNAME \
&& chmod 0440 /etc/sudoers.d/$USERNAME
# Install nginx
RUN dnf -y install nginx
# Install php
RUN set -x \
&& dnf module reset php \
&& dnf -y install epel-release glibc-locale-source glibc-langpack-en \
&& dnf -y install https://rpms.remirepo.net/enterprise/remi-release-8.rpm \
&& dnf -y module install php:remi-7.4
# Install Laravel
EXPOSE 8000
RUN set -x \
&& dnf -y install php-mcrypt php-pdo php-bcmath php-tokenizer php-xml php-mysqlnd php-gd php-intl php-zip php-opcache php-pecl-xdebug \
&& wget https://getcomposer.org/installer -O composer-installer.php \
&& php composer-installer.php --filename=composer --install-dir=/usr/local/bin \
&& composer self-update \
&& composer create-project laravel/laravel $PATH_LARAVEL --prefer-dist \
&& groupadd laravel \
&& gpasswd -a $USERNAME laravel \
&& gpasswd -a nginx laravel \
&& find $PATH_LARAVEL -type d -exec chmod 775 \{\} \; \
&& find $PATH_LARAVEL -type f -exec chmod 664 \{\} \; \
&& chown -R :$USERNAME $PATH_LARAVEL \
&& find $PATH_LARAVEL -type d -exec chmod g+s \{\} \; \
&& setfacl -R -d -m g::rwx $PATH_LARAVEL
# Install MongoDB
EXPOSE 27017
COPY ./mongodb-org.repo /etc/yum.repos.d/
RUN dnf -y install mongodb-org
# Set locale
RUN localedef -f UTF-8 -i ja_JP ja_JP.UTF-8
ENV LANG="ja_JP.UTF-8"
ENV LANGUAGE="ja_JP:ja"
ENV LC_ALL="ja_JP.UTF-8"
# Working directory setting
WORKDIR $PATH_LARAVEL
步骤4: 创建mongodb-org.repo文件
[mongodb-org-4.4]
name=MongoDB Repository
baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/4.4/x86_64/
gpgcheck=1
enabled=1
gpgkey=https://www.mongodb.org/static/pgp/server-4.4.asc
第五步骤:启动容器
打开命令面板并执行[remote-containers: Open Folder in Container…],容器构建将开始。成功完成构建后,VSCode将在容器内启动。
可以参考以下链接
-
- VS CodeでDocker開発コンテナを便利に使おう
-
- CentOS8にLaravel7をインストールする
-
- CentOS8にMongoDBをインストールする手順
-
- Dockerfile リファレンス
- 【2020年1月】令和だし本格的にVSCodeのRemote Containerで、爆速の”開発コンテナ”始めよう
更新历史
-
- 2020/08/11
- 初版公開 ( ほとんど説明も無い叩き台記事 )