Initial commit
This commit is contained in:
commit
297e6bfaf9
5 changed files with 94 additions and 0 deletions
33
Dockerfile.alpine
Normal file
33
Dockerfile.alpine
Normal file
|
@ -0,0 +1,33 @@
|
|||
# Stage 1 - Build the V-compiler
|
||||
FROM git.snrd.eu/sunred/vlang:alpine-base AS builder
|
||||
|
||||
# Add the build dependencies
|
||||
RUN apk --no-cache add \
|
||||
# Git support
|
||||
git openssh-client \
|
||||
# js back-end
|
||||
nodejs npm \
|
||||
# V-development dependencies
|
||||
make musl-dev valgrind clang gcc \
|
||||
# V-UI dependencies
|
||||
libx11-dev glfw-dev freetype-dev
|
||||
|
||||
WORKDIR /opt/vlang
|
||||
|
||||
RUN git clone https://github.com/vlang/v /opt/vlang && make VFLAGS='-cc gcc' && v -version
|
||||
|
||||
# Stage 2 - Make minimal runtime without git and make
|
||||
# we still nedd gcc and musl-dev for v to compile;
|
||||
# libexecinfo is needed for the bundled tcc to work;
|
||||
# libc-dev is needed for the various C headers like inttypes.h .
|
||||
|
||||
FROM git.snrd.eu/sunred/vlang:alpine-base AS runtime
|
||||
|
||||
ENV VFLAGS="-cc gcc"
|
||||
|
||||
RUN apk --no-cache add \
|
||||
gcc musl-dev git libc-dev
|
||||
|
||||
|
||||
# Copy the prebuilt V compiler
|
||||
COPY --from=builder /opt/vlang /opt/vlang
|
21
LICENSE.txt
Normal file
21
LICENSE.txt
Normal file
|
@ -0,0 +1,21 @@
|
|||
MIT License
|
||||
|
||||
Copyright (c) 2022 SunRed
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all
|
||||
copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
SOFTWARE.
|
1
README.md
Normal file
1
README.md
Normal file
|
@ -0,0 +1 @@
|
|||
# V programming language docker images
|
14
base/Dockerfile.alpine
Normal file
14
base/Dockerfile.alpine
Normal file
|
@ -0,0 +1,14 @@
|
|||
# This is the dockerfile for generating base images for Alpine
|
||||
# contains the minimal dependencies needed for V to run
|
||||
FROM alpine:latest
|
||||
|
||||
WORKDIR /opt/vlang
|
||||
|
||||
ENV VVV /opt/vlang
|
||||
ENV PATH /opt/vlang:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
|
||||
|
||||
RUN mkdir -p /opt/vlang && ln -s /opt/vlang/v /usr/bin/v
|
||||
|
||||
RUN apk update && \
|
||||
# Default base depenencies
|
||||
apk add --no-cache openssl-dev sqlite-dev
|
25
docker-bake.hcl
Normal file
25
docker-bake.hcl
Normal file
|
@ -0,0 +1,25 @@
|
|||
variable "REG" {
|
||||
default = "git.snrd.eu"
|
||||
}
|
||||
variable "REPO" {
|
||||
default = "sunred/vlang"
|
||||
}
|
||||
|
||||
group "default" {
|
||||
targets = ["alpine-base", "alpine"]
|
||||
}
|
||||
target "alpine-base" {
|
||||
output = ["type=docker"]
|
||||
dockerfile = "base/Dockerfile.alpine"
|
||||
tags = ["${REG}/${REPO}:alpine-base"]
|
||||
#platforms = ["linux/amd64", "linux/arm64"]
|
||||
}
|
||||
target "alpine" {
|
||||
output = ["type=docker"]
|
||||
dockerfile = "Dockerfile.alpine"
|
||||
tags = ["${REG}/${REPO}:alpine"]
|
||||
#platforms = ["linux/amd64", "linux/arm64"]
|
||||
contexts = {
|
||||
"git.snrd.eu/sunred/vlang:alpine-base": "target:alpine-base"
|
||||
}
|
||||
}
|
Reference in a new issue