首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将实验语言服务器添加到vscode的devcontainer?

如何将实验语言服务器添加到vscode的devcontainer?
EN

Stack Overflow用户
提问于 2020-01-25 05:46:53
回答 1查看 409关注 0票数 2

我正在做一个非常基本的开发容器,用于在Windows上的VSCode中进行terraform工作。每次我启动它或重新构建容器以供使用时,它都会提示我安装实验语言服务器,在那里我最终会为它选择最新的标记(v0.0.9)。

我在默认的settings.json文件中配置了以下设置

代码语言:javascript
复制
{
    "terraform.languageServer.enabled": true
}

我的.devcontainer/devtainer.json是从Azure terraform容器中获取并最小化的。

代码语言:javascript
复制
// For format details, see https://aka.ms/vscode-remote/devcontainer.json or the definition README at
// https://github.com/microsoft/vscode-dev-containers/tree/master/containers/docker-existing-dockerfile
{
    // See https://aka.ms/vscode-remote/devcontainer.json for format details.
    "name": "DevOps Projects IaC With Terraform",
    "context": "..",
    "dockerFile": "Dockerfile",
    "runArgs": [ 
        "-v", "${env:USERPROFILE}/.ssh:/root/.ssh-localhost:ro", 
        "-v", "${env:USERPROFILE}/.aws:/root/.aws:ro"
    ],

    "postCreateCommand": "mkdir -p ~/.ssh && cp -r ~/.ssh-localhost/* ~/.ssh && chmod 700 ~/.ssh && chmod 600 ~/.ssh/*",

    // Add the IDs of any extensions you want installed in the array below.
    "extensions": ["mauve.terraform"]
}

如何将实验语言服务器包含到我的build/devcontainer配置中?

EN

回答 1

Stack Overflow用户

发布于 2020-04-24 23:38:59

出于我自己的目的,我已经试图找出这个问题的答案有一段时间了。我今天决定,我要弄清楚它,我相信我能用它(安装terraform,LSP和AWS提供商)使用

代码语言:javascript
复制
# Terraform, LSP and AWS Provider
ENV TERRAFORM_VERSION=0.12.24
ENV TERRAFORM_LSP_VERSION=0.0.10
ENV TERRAFORM_AWS_PROVIDER_VERSION=2.59.0

RUN wget -c https://releases.hashicorp.com/terraform/${TERRAFORM_VERSION}/terraform_${TERRAFORM_VERSION}_linux_amd64.zip \
    && unzip terraform_${TERRAFORM_VERSION}_linux_amd64.zip \
    && mv terraform /usr/local/bin \
    && wget -c https://releases.hashicorp.com/terraform-provider-aws/${TERRAFORM_AWS_PROVIDER_VERSION}/terraform-provider-aws_${TERRAFORM_AWS_PROVIDER_VERSION}_linux_amd64.zip \
    && unzip terraform-provider-aws_${TERRAFORM_AWS_PROVIDER_VERSION}_linux_amd64.zip \
    && mv terraform-provider-aws_v${TERRAFORM_AWS_PROVIDER_VERSION}* /usr/local/bin \
    && echo "provider \"aws\" {}" >> /usr/local/bin/providers.tf \
    && wget -c https://github.com/juliosueiras/terraform-lsp/releases/download/v${TERRAFORM_LSP_VERSION}/terraform-lsp_${TERRAFORM_LSP_VERSION}_linux_amd64.tar.gz -O - | tar -zx \
    && mv terraform-lsp /usr/local/bin \
    && rm terraform*.zip

因为我要将其安装到/usr/local/bin,并且我要创建一个没有权限安装这些组件的containerUser,所以我需要将以下内容添加到我的devcontainer.json的settings部分

代码语言:javascript
复制
        "terraform.indexing": {
            "enabled": false
        },
        "terraform.languageServer": {
            "enabled": true,
            "installCommonProviders": false,
            "pathToBinary": "/usr/local/bin"
        },

显然,如果您想要其他提供商,或者将其安装到其他地方,或者不同版本的terraform,LSP或AWS提供商,您需要进行调整,但它们都应该是简单的更改。

最新版本可在以下链接中找到:

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59904101

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档