Nix 오류: 'goPackages' 변수가 정의되지 않았습니다.

Nix 오류: 'goPackages' 변수가 정의되지 않았습니다.

아래 설명된 대로 Docker 이미지를 빌드하려고 합니다.http://lethalman.blogspot.com/2016/04/cheap-docker-images-with-nix_15.html

default.nix

{ pkgs ? import <nixpkgs> {} }:

with pkgs;
let
  entrypoint = writeScript "entrypoint.sh" ''
    #!${stdenv.shell}
    set -e

    # allow the container to be started with `--user`
    if [ "$1" = "redis-server" -a "$(${coreutils}/bin/id -u)" = "0" ]; then
      chown -R redis .
      exec ${goPackages.gosu.bin}/bin/gosu redis "$BASH_SOURCE" "$@"
    fi

    exec "$@"
  '';
in
dockerTools.buildImage {
  name = "redis";
  runAsRoot = ''
    #!${stdenv.shell}
    ${dockerTools.shadowSetup}
    groupadd -r redis
    useradd -r -g redis -d /data -M redis
    mkdir /data
    chown redis:redis /data
  '';

  contents = [ redis ];

  config = {
    Cmd = [ "redis-server" ];
    Entrypoint = [ entrypoint ];
    ExposedPorts = {
      "6379/tcp" = {};
    };
    WorkingDir = "/data";
    Volumes = {
      "/data" = {};
    };
  };
}

그러나 이로 인해 다음 오류가 발생합니다.

nix-build
error: undefined variable 'goPackages' at /home/chris/temp/nix/default.nix:12:14
(use '--show-trace' to show detailed location information)

이 문제를 어떻게 해결할 수 있나요?

답변1

gosu지금 이용 가능:${pkgs.gosu.bin}

즉, 다음을 교체하십시오.

      exec ${goPackages.gosu.bin}/bin/gosu redis "$BASH_SOURCE" "$@"

그리고:

      exec ${pkgs.gosu.bin}/bin/gosu redis "$BASH_SOURCE" "$@"

무슨 일이 일어나고 있는지 아는 사람이 있다면 goPackages알아두면 도움이 될 것입니다.

다른 사람들도 같은 오류가 발생할 수 있다고 생각하여 이 질문/답변을 게시합니다.

관련 정보