目次

devcontainer

ファイル構成

.devcontainer
 ├ .env
 ├ devcontainer.json
 └ docker-compose.yml

devcontainer.json

要素

dockerComposeFile

service

workspaceFolder

extensions

shutdownAction

"shutdownAction": "none",

開発用環境例

Alpine

FROM alpine:3.14

ARG USERNAME
ARG USER_UID=1000
ARG USER_GID=${USER_UID}

RUN apk update && \
    apk add --no-cache sudo tzdata git openssh

RUN addgroup -g ${USER_GID} ${USERNAME} && \
    adduser -D -u ${USER_UID} -s /bin/sh ${USERNAME} -G wheel ${USERNAME} && \
    echo '%wheel ALL=(ALL) NOPASSWD: ALL' >> /etc/sudoers

Debian

FROM ~~~FROM php:8.0-apache

# define
ARG USERNAME
ARG USER_UID=1000
ARG USER_GID=$USER_UID

# install
RUN apt -y update && \
    apt -y upgrade && \
    apt -y install sudo tzdata git

# add user
RUN useradd --uid ${USER_UID} --create-home --shell /bin/sh -G sudo,root ${USERNAME} && \
    echo '%sudo ALL=(ALL) NOPASSWD:ALL' >> /etc/sudoers

# setting setup.sh
COPY setup.sh /var/setup.sh
RUN chmod 700 /var/setup.sh && \
    chown ${USERNAME}:${USERNAME} /var/setup.sh

CMD /var/setup.sh

Tips

ポートの不具合でうまくいかない

1)
devcontainer.json reference, Visual Studio Code, https://code.visualstudio.com/docs/remote/devcontainerjson-reference, 2021/06/04
2)
“Remote-Containers: Close Remote Connection” should not shutdown a container that VsCode did not start, GitHub, https://github.com/microsoft/vscode-remote-release/issues/4203, 2021/06/14
3)
PONzu-0529/devcontainer, https://github.com/PONzu-0529/devcontainer, GitHub, 2021/07/08