[ec2-user@ip-10-0-0-8 simpleHttp]$ cat Dockerfile
FROM golang:alpine
# Set necessary environmet variables needed for our image
ENV GO111MODULE=on \
CGO_ENABLED=0 \
GOOS=linux \
GOARCH=amd64
# Move to working directory /build
WORKDIR /build
# Copy the code into the container
COPY ./simpleHTTP.go .
# Build the application
RUN go build -o simpleHTTP ./simpleHTTP.go
# Move to /dist directory as the place for resulting binary folder
WORKDIR /dist
# Copy binary from build to main folder
#COPY ./exam-admin-0.0.1-SNAPSHOT.jar /opt/exam
RUN cp /build/simpleHTTP .
EXPOSE 8000
ENTRYPOINT ["./simpleHTTP"]
simpleHTTP.go 文件内容:
package main
import (
"fmt"
"log"
"net"
"os"
"net/http"
)
func main() {
log.Print("simplehttp: Enter main()")
http.HandleFunc("/", handler)
log.Fatal(http.ListenAndServe("0.0.0.0:8000", nil))
}
// printing request headers/params
func handler(w http.ResponseWriter, r *http.Request) {
log.Print("request from address: %q\n", r.RemoteAddr)
fmt.Fprintf(w, "%s %s %s\n", r.Method, r.URL, r.Proto)
for k, v := range r.Header {
fmt.Fprintf(w, "Header[%q] = %q\n", k, v)
}
fmt.Fprintf(w, "Host = %q\n", r.Host)
fmt.Fprintf(w, "RemoteAddr = %q\n", r.RemoteAddr)
if err := r.ParseForm(); err != nil {
log.Print(err)
}
for k, v := range r.Form {
fmt.Fprintf(w, "Form[%q] = %q\n", k, v)
}
fmt.Fprintf(w, "\n===> local IP: %q\n\n",GetOutboundIP())
fmt.Fprintf(w, "Env message = %s\n", os.Getenv("message"))
}
func GetOutboundIP() net.IP {
conn, err := net.Dial("udp", "8.8.8.8:80")
if err != nil {
log.Fatal(err)
}
defer conn.Close()
localAddr := conn.LocalAddr().(*net.UDPAddr)
return localAddr.IP
}
[ec2-user@ip-10-0-0-8 exam-vue]$ cat Dockerfile
FROM node:12
ARG REGISTRY=https://registry.npm.taobao.org
WORKDIR /opt/exam-frontend
COPY . /opt/exam-frontend
EXPOSE 8080 #vue项目端口对外暴露
RUN ls && npm i --registry ${REGISTRY}
CMD ["npm", "run", "prod"]
[ec2-user@ip-10-0-0-8 exam-admin]$ cat Dockerfile
FROM openjdk:8
RUN mkdir -p /opt/exam/
COPY ./exam-admin-0.0.1-SNAPSHOT.jar /opt/exam
COPY ./run.sh /opt/exam/
COPY ./static/ /opt/exam #上传文件夹
EXPOSE 8888 #SpringBoot项目端口对外暴露
WORKDIR /opt/exam
ENTRYPOINT ["sh", "/opt/exam/run.sh"]
[ec2-user@ip-10-0-0-8 exam-admin]$ cat run.sh
#!/bin/sh
if [ -z $JAVA_OPTS ];then
JAVA_OPTS="-Xms128m -Xmx128m"
fi
if [ -z $JAR_PATH ];then
JAR_PATH="/opt/exam"
fi
if [ -z $EXAM_ENV ];then
EXAM_ENV="prod"
fi
if [ x$LOG != "xfalse" ];then
mkdir -p logs
LOGGING_OPT="--logging.path=./logs"
fi
#echo $JAVA_OPTS -Dlogging.path=./logs -jar ${JAR_PATH}/*.jar
#java $JAVA_OPTS -Dlogging.path=./logs -jar ${JAR_PATH}/*.jar
echo $JAVA_OPTS -Dlogging.path=./logs -DSpring.profiles.active=$EXAM_ENV -jar ${JAR_PATH}/*.jar
java $JAVA_OPTS -Dlogging.path=./logs -DSpring.profiles.active=$EXAM_ENV -jar ${JAR_PATH}/*.jar
cd fleuntbit
docker build -t fleuntbit:v3 .
docker tag fleuntbit:v3 402097323/fleuntbit:v3
docker push 402097323/fleuntbit:v3
docker run -d -p 111.20.72.43:8888:8080 -v /usr/local/webapps:/usr/local/webapps -it --name tomcat77 tomcat:7 bash
docker run -d -p 8888:8080 -it --name simpleHTTP afbb40525032 bash
docker exec -it d07f46dc2535 /bin/sh
Docker常用命令大全(万字详解) - 腾讯云开发者社区-腾讯云
Docker 常用命令速查手册 - 知乎
docker run -it id
docker build -t exam-admin-prod:v1 .
docker tag exam-admin-prod:v1 402097323/exam-admin-prod:v1
docker push 402097323/exam-admin-prod:v1
docker build -t fleuntbit:v1 .
docker tag fleuntbit:v1 402097323/fleuntbit:v1
docker push 402097323/fleuntbit:v1