kaniko is added
This commit is contained in:
commit
bad82ad2fb
5
.devcontainer/Dockerfile
Normal file
5
.devcontainer/Dockerfile
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
FROM mcr.microsoft.com/devcontainers/base:ubuntu
|
||||||
|
|
||||||
|
RUN apt clean && apt update --fix-missing
|
||||||
|
RUN apt install -y pkg-config \
|
||||||
|
&& rm -rf /var/lib/apt/lists/*
|
47
.devcontainer/devcontainer.json
Normal file
47
.devcontainer/devcontainer.json
Normal file
@ -0,0 +1,47 @@
|
|||||||
|
{
|
||||||
|
"name": "loafle.docker.tools",
|
||||||
|
// Or use a Dockerfile or Docker Compose file. More info: https://containers.dev/guide/dockerfile
|
||||||
|
"dockerComposeFile": "docker-compose.yaml",
|
||||||
|
"service": "app",
|
||||||
|
"workspaceFolder": "/workspace",
|
||||||
|
"shutdownAction": "stopCompose",
|
||||||
|
"features": {
|
||||||
|
"ghcr.io/devcontainers/features/git:1": {},
|
||||||
|
"ghcr.io/devcontainers/features/docker-in-docker:2": {}
|
||||||
|
},
|
||||||
|
// Configure tool-specific properties.
|
||||||
|
"customizations": {
|
||||||
|
// Configure properties specific to VS Code.
|
||||||
|
"vscode": {
|
||||||
|
"settings": {
|
||||||
|
"terminal.integrated.defaultProfile.linux": "zsh",
|
||||||
|
"terminal.integrated.profiles.linux": {
|
||||||
|
"zsh": {
|
||||||
|
"path": "/bin/zsh"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"editor.formatOnSave": true
|
||||||
|
},
|
||||||
|
"extensions": [
|
||||||
|
"eamodio.gitlens",
|
||||||
|
"esbenp.prettier-vscode",
|
||||||
|
"ms-azuretools.vscode-docker",
|
||||||
|
"ms-kubernetes-tools.vscode-kubernetes-tools",
|
||||||
|
"streetsidesoftware.code-spell-checker",
|
||||||
|
"tamasfe.even-better-toml"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
// Use 'forwardPorts' to make a list of ports inside the container available locally.
|
||||||
|
// "forwardPorts": [],
|
||||||
|
// Use 'postCreateCommand' to run commands after the container is created.
|
||||||
|
"postCreateCommand": "/bin/sh ./.devcontainer/postCreateCommand.sh",
|
||||||
|
// Uncomment to connect as root instead. More info: https://aka.ms/dev-containers-non-root.
|
||||||
|
// "remoteUser": "vscode"
|
||||||
|
"mounts": [
|
||||||
|
"source=${localEnv:HOME}/.gitconfig,target=/home/vscode/.gitconfig,type=bind,consistency=cached",
|
||||||
|
"source=${localEnv:HOME}/.config/pypoetry,target=/home/vscode/.config/pypoetry,type=bind,consistency=cached",
|
||||||
|
"source=${localEnv:HOME}/.ssh/id_rsa,target=/home/vscode/.ssh/id_rsa,type=bind,consistency=cached",
|
||||||
|
"source=${localEnv:HOME}/.netrc,target=/home/vscode/.netrc,type=bind,consistency=cached"
|
||||||
|
]
|
||||||
|
}
|
48
.devcontainer/docker-compose.yaml
Normal file
48
.devcontainer/docker-compose.yaml
Normal file
@ -0,0 +1,48 @@
|
|||||||
|
version: "3.8"
|
||||||
|
|
||||||
|
services:
|
||||||
|
app:
|
||||||
|
# Using a Dockerfile is optional, but included for completeness.
|
||||||
|
build:
|
||||||
|
context: .
|
||||||
|
dockerfile: Dockerfile
|
||||||
|
# [Optional] You can use build args to set options. e.g. 'VARIANT' below affects the image in the Dockerfile
|
||||||
|
# args:
|
||||||
|
# VARIANT: buster
|
||||||
|
# environment:
|
||||||
|
# PORT: 3000
|
||||||
|
# ports:
|
||||||
|
# - 3000:3000
|
||||||
|
|
||||||
|
volumes:
|
||||||
|
# This is where VS Code should expect to find your project's source code and the value of "workspaceFolder" in .devcontainer/devcontainer.json
|
||||||
|
- ..:/workspace:cached
|
||||||
|
|
||||||
|
# Uncomment the next line to use Docker from inside the container. See https://aka.ms/vscode-remote/samples/docker-from-docker-compose for details.
|
||||||
|
# - /var/run/docker.sock:/var/run/docker.sock
|
||||||
|
|
||||||
|
# Overrides default command so things don't shut down after the process ends.
|
||||||
|
# command: /bin/sh -c "while sleep 1000; do :; done"
|
||||||
|
command: sleep infinity
|
||||||
|
|
||||||
|
# Runs app on the same network as the service container, allows "forwardPorts" in devcontainer.json function.
|
||||||
|
# network_mode: service:another-service
|
||||||
|
|
||||||
|
# Use "forwardPorts" in **devcontainer.json** to forward an app port locally.
|
||||||
|
# (Adding the "ports" property to this file will not forward from a Codespace.)
|
||||||
|
|
||||||
|
# Uncomment the next line to use a non-root user for all processes - See https://aka.ms/vscode-remote/containers/non-root for details.
|
||||||
|
# user: vscode
|
||||||
|
|
||||||
|
# Uncomment the next four lines if you will use a ptrace-based debugger like C++, Go, and Rust.
|
||||||
|
# cap_add:
|
||||||
|
# - SYS_PTRACE
|
||||||
|
# security_opt:
|
||||||
|
# - seccomp:unconfined
|
||||||
|
|
||||||
|
# You can include other services not opened by VS Code as well
|
||||||
|
# another-service:
|
||||||
|
# image: mongo:latest
|
||||||
|
# restart: unless-stopped
|
||||||
|
|
||||||
|
# As in the "app" service, use "forwardPorts" in **devcontainer.json** to forward an app port locally.
|
8
.devcontainer/postCreateCommand.sh
Normal file
8
.devcontainer/postCreateCommand.sh
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
|
set -ex
|
||||||
|
|
||||||
|
# sudo apt clean
|
||||||
|
# sudo apt update --fix-missing
|
||||||
|
|
||||||
|
# project dependency
|
34
kaniko/1.23.2-bash/Dockerfile
Normal file
34
kaniko/1.23.2-bash/Dockerfile
Normal file
@ -0,0 +1,34 @@
|
|||||||
|
# Dockerfile (kaniko-with-bash) docker.unbox-x.net/registry/tools/kaniko:v1.23.2
|
||||||
|
# Stage 1: 공식 Kaniko executor 바이너리 추출
|
||||||
|
FROM gcr.io/kaniko-project/executor:v1.23.2 AS kaniko
|
||||||
|
|
||||||
|
# Stage 2: 안전한 Bash 환경을 가진 최종 이미지
|
||||||
|
FROM debian:bookworm-slim
|
||||||
|
|
||||||
|
# 보안: 루트 인증서 및 최소 도구 설치
|
||||||
|
RUN apt-get update && \
|
||||||
|
apt-get install -y --no-install-recommends \
|
||||||
|
bash \
|
||||||
|
coreutils \
|
||||||
|
ca-certificates \
|
||||||
|
&& rm -rf /var/lib/apt/lists/*
|
||||||
|
|
||||||
|
# 보안: executor 바이너리 복사 (Go 정적 빌드 바이너리)
|
||||||
|
COPY --from=kaniko /kaniko/executor /kaniko/executor
|
||||||
|
|
||||||
|
# 보안: 실행 디렉토리 및 사용자 지정
|
||||||
|
RUN addgroup --system kaniko && adduser --system --ingroup kaniko kaniko && \
|
||||||
|
mkdir -p /workspace && chown -R kaniko:kaniko /workspace && \
|
||||||
|
chown -R kaniko:kaniko /kaniko
|
||||||
|
|
||||||
|
# PATH 설정
|
||||||
|
ENV PATH="/kaniko:$PATH"
|
||||||
|
|
||||||
|
# 보안: 작업 디렉토리 설정
|
||||||
|
WORKDIR /workspace
|
||||||
|
|
||||||
|
# 보안: 루트 권한 제거
|
||||||
|
USER kaniko
|
||||||
|
|
||||||
|
# ENTRYPOINT 설정
|
||||||
|
ENTRYPOINT ["/kaniko/executor"]
|
Loading…
x
Reference in New Issue
Block a user